java连接数据库实现增删改查,mysql表的增删查改

 2023-09-25 阅读 21 评论 0

摘要:mysql3 表的增删查改增创建数据表单行插入多行插入指定列插入替换查select列全列查询指定列查询表达式中可以包含一个字段给输出的结果重命名去除重复结果where条件比较运算符逻辑运算符order by排序筛选分页结果从0开始,筛选n条结果从s开始,筛选n条结果改删删

mysql3 表的增删查改

    • 创建数据表
    • 单行插入
    • 多行插入
    • 指定列插入
    • 替换
    • select列
      • 全列查询
      • 指定列查询
      • 表达式中可以包含一个字段
      • 给输出的结果重命名
      • 去除重复结果
    • where条件
      • 比较运算符
      • 逻辑运算符
    • order by排序
    • 筛选分页结果
      • 从0开始,筛选n条结果
      • 从s开始,筛选n条结果
    • 删除数据
    • 截断表
  • 聚合函数
  • group by子句使用

创建数据表

create table [表名]([1] [数据类型1], [2] [数据类型2], ...);

在这里插入图片描述

单行插入

insert into [表名] values(数据1, 数据2, ...);

多行插入

insert into [表名] values(第一行数据1, 第一行数据2, ...),(第二行数据1, 第二行数据2, ...);

指定列插入

insert into [表名](1,2, ...) values(1数据,2数据, ...);

替换

replace into [表名] values(数据1, 数据2, ...);
replace into [表名](1,2, ...) values(1数据,2数据, ...);
替换的时候需要注意:
一定要在替换的数据当中,能够唯一标识是哪一行数据(否则就重新插入了)
替换的步骤:先将原先的数据删除,再重新插入

select列

为全表查询,会输出全表中查询列的所有数据

全列查询

select * from [表名];
数据量小时可以使用,数据量多时不建议使用

指定列查询

select [1],[2],... from [表名];
注意:在指定列查询时,如果指定列不在表中,则默认输出行的数值为指定列的数值
所有的查询都不改变原表数据

表达式中可以包含一个字段

select [1想要进行的操作],[2想进行的操作],... from [表名];
例如:在stu表中想查询序号姓名分数时给分数(grade)加10
select id,name,grade+10 from stu;

给输出的结果重命名

select [1想要进行的操作] [想要输出时更改的名称],[2想进行的操作] [想要输出时更改的名称],... from [表名];

select [1想要进行的操作] as [想要输出时更改的名称],[2想进行的操作] as [想要输出时更改的名称],... from [表名];

去除重复结果

select distinct [1],[2],... from [表名];

where条件

select [1],[2],... from [表名] where [约束条件];
例如:
select id,name,grade from stu where name='张三';

比较运算符

>,>=,<,<=			大于,大于等于,小于,小于等于可以查询一个列大于另一个列,例如语文(yuwen)大于英语(yingyu) -> where yuwen > yingyu
=					等于,NULL不安全,例如NULL=NULL的结果为NULL
<=>					等于,NULL安全,例如NULL=NULL的结果为TRUE(1)
!=,<>				不等于
BETWEEN a0 AND a1	范围匹配,[a0, a1],如果a0 <= value <= a1,返回TRUE(1)
IN(option, ...)		如果是option中的任意一个,返回TRUE(1)
IS NULL				是NULL
IS NOT NULL			不是NULL
LIKE 				模糊匹配	,% 表示任意多个(包括0个)任意字符,_ 表示任意一个字符例如:查找姓孙的同学				where name like '孙%'查找姓孙且名字为一个字的同学	where name like '孙_'查找不姓孙的同学				where name not like '孙%'假设有英语(yingyu)语文(yuwen)数学(shuxue)三项成绩,想查询总分200以下的:

在这里插入图片描述

逻辑运算符

AND		多个条件必须都为TRUE(1),结果才是TRUE(1)
OR		任意一个条件为TRUE(1),结果就是TRUE(1)
NOT		条件为TRUE(1),结果为FALSE(0)

order by排序

select ... from [表名] [where ...] [order by ...];
NULL视为比任何数都小
默认为ASC(升序),如果需要降序则在后面加上DESC例如数学语文英语,需要数学降序,语文英语升序

java连接数据库实现增删改查、在这里插入图片描述

或是总分降序排列

在这里插入图片描述

添加几个数据,查询姓赵的同学的数学成绩并降序排列

在这里插入图片描述
在这里插入图片描述

筛选分页结果

从0开始,筛选n条结果

select ... from [表名] [where ...] [order by ...] limit n;

在这里插入图片描述

从s开始,筛选n条结果

select ... from [表名] [where ...] [order by ...] limit s,n;
select ... from [表名] [where ...] [order by ...] limit n offest s;

在这里插入图片描述
在这里插入图片描述

update [表名] set [列名1] = [想要修改的值], [2] = [想要修改的值], ... [where ...] [order by ...] [limit ...];
注意:如果仅使用 update [表名] set [列名1] = [想要修改的值];会将这一列所有的值都变成想要修改的值
所以一般需要加一个约束条件,用来框定需要更新哪些具体的行例如想把赵铁柱的数学改成80分:

在这里插入图片描述

想让总分排名倒数三的人的数学成绩加上30分
首先先查哪些是倒数三的人

java的增删改查?在这里插入图片描述

随后使用in约束条件来给他们加上30分

在这里插入图片描述

好家伙都给铁柱改成80了咋分还是倒数呢,这就是木桶效应吗

删除数据

delee
1、delete只删除表数据,不会修改表结构
2、删除数据要慎用(物理删除)
delete from [表名] [where ...];
可以用约束条件来框定删除范围
例如删除铁柱的成绩

在这里插入图片描述
心疼铁柱三秒

截断表

重置表结构(表结构当中有些自增选项)
表数据也被清空,需慎用
truncate [表名];

聚合函数

COUNT(列名或*)	返回查询到的数据的数量
SUM(列名或*)		返回查询到的数据的总和,不是数字没有意义
AVG(列名或*)		返回查询到的数据的平均值,不是数字没有意义
MAX(列名或*)		返回查询到的数据的最大值,不是数字没有意义
MIN(列名或*)		返回查询到的数据的最小值,不是数字没有意义

group by子句使用

可以对指定列进行分组查询
select [1],[2],... from [表名] group by [按照某一列进行分组];
例如想求两个班级分别的平均分:可以先分组,对分组的结果进行聚合

在这里插入图片描述
在这里插入图片描述

同时可以在后边加上having进行约束
select [1],[2],... from [表名] group by [按照某一列进行分组] [having ...];

在这里插入图片描述

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/95104.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息