表中数据的增删改查
一.增:
1.向表中插入数据(全部):
1)在INSERT语句中指定所有字段名:
“insert into 表名(字段名1,字段名2,……) values(值1,值2,……);”
(注:在插入数据时,INSERT语句中字段的顺序可以和数据库中表字段的顺序不一致,但VALUES中的值一定要和INSERT语句中字段的顺序对应。)
2)在INSERT语句中不指定字段名:
“insert into 表名 values(值1,值2,……);”
(注:使用这种方式来插入数据,VALUES中值的顺序必须和数据表中字段的顺序对应,否则会出现错误。)
2.向表中插入数据(部分):
“insert into 表名(字段名1,字段名2,……) values(值1,值2,……);”
(注:(1)每个值的顺序、类型必须和字段名对应。 (2)指定字段无须和数据表中定义的顺序一致,只要和VALUES中值的顺序一致即可。)
3.向表中批量插入数据:
“insert into 表名(字段名1,字段名2,……) values(值1,值2,……),(值1,值2,……),…… ,(值1,值2,……);”
(注:每个值的顺序、类型必须和字段名对应。)
二.改:
修改表中数据:
“update 表名
set 字段名1 = 值1,[字段名2 = 值2,]
[where 条件表达式];”
(注:(1)如果要更新多个字段的值,可以用逗号分隔多个字段和值,“WHERE条件表达式”是可选的,用于指定更新数据需要满足的条件。 (2)当UPDATE语句中不使用WHERE条件语句时,会将表中所有数据的指定字段全部更新。)
三.删:
1.使用delete删除数据:
1)删除所有数据:“delete from 表名;”
2)删除部分数据:“delete from 表名 where 字段名1 = 值1;”
(注:不使用where条件语句时,表中所有数据将会被删除。)
2.使用truncate删除数据:
删除所有数据:“truncate table 表名;”
(注:(1)delete语句后面可以跟where子句指定条件,从而实现删除部分数据,turncate语句只能用于删除表中所有的数据。 (2)使用TRUNCATE语句删除表中的数据后,再次向表中添加记录时,自增字段的默认值重置为1,而使用DELETE语句删除表中数据后,再次向表中添加记录时,自增字段的值为删除时该字段的最大值加1。)
四.查:
1.基础查询:
1)查询所有数据:“select * from 表名;”
(注:用这种方式查询出的结果集中的字段顺序不能改变,只能与数据表中的字段顺序一致。)
2)查询部分数据:“select 字段名1,字段名2,……,字段名n from 表名;”
(注:在查询时指定的字段顺序与数据表中的字段顺序不一致,查询出来的结果集会按照指定的字段顺序显示。)
2.条件查询:
1)带关系运算符的查询:“select 字段名1,字段名2,…… from 表名 where 条件表达式;”
(注:“!=”和“<>”都表示不等于,有个别数据库不支持“!=”,因此建议使用“<>”。)
2)带and关键字的查询:“select 字段名1,字段名2 ,…… from 表名 where 条件表达式1 and 条件表达式2 ……;”
(注:过滤时要满足所有查询条件。)
3)带or关键字的查询:“select 字段名1,字段名2 ,…… from 表名 where 条件表达式1 or 条件表达式2 ……;”
(注:过滤时只要满足其中一个查询条件即可。)
4)带in或not in关键字的查询:“select 字段名1,字段名2 ,…… from 表名 where 字段名 [not] in(元素1,元素2,……);”
(注:1]判断某个字段是否在指定集合中,如果不满足条件,则数据会被过滤掉。 2]NOT是可选的,表示不在集合范围中,元素1、元素2等是集合中的元素。)
5)带is null或is not null关键字的查询:“select 字段名1,字段名2 ,…… from 表名 where 字段名 is [not] null;”
(注:判断是否为空值。)
6)带between and关键字的查询:“select 字段名1,字段名2 ,…… from 表名 where 字段名 [not] between 值1 and 值2 ……;”
(注:判断某个字段的值是否在指定范围内,若不在指定范围内,则会被过滤掉。)
7)带like关键字的查询:“select 字段名1,字段名2 ,…… from 表名 where 字段名 [not] like '匹配字符串';”
(注:“匹配字符串”用来指定要匹配的字符串,这个字符串可以是一个普通字符串,也可以是包含百分号(%)和下画线(_)的通配符字符串,其中百分号表示任意0~n个字符,下画线表示任意一个字符。)
8)带distinct关键字的查询:“select distinct 字段名 from 表名;”
(注:用于去除重复数据。)
3.高级查询:
1)排序查询:“select 字段名1,字段名2,…… from 表名 order by 字段名1 [asc|desc],字段名2 [asc|desc],……;”
(注:asc和sesc参数是可选的,其中ASC代表按升序排序,DESC代表按降序排序,如果不写该参数,默认按升序排序。)
2)聚合函数:
<1>count()函数:“select count(*|1|列名) from 表名;”
(注:返回行数)
<2>sum()函数:“select sum(字段名) from 表名;”
(注:用于计算指定列的数值和,如果指定列的类型不是数值类型,那么计算结果为0。)
<3>avg()函数:“select avg(字段名) from 表名;”
(注:用于计算指定列的平均值,如果指定列的类型不是数值类型,那么计算结果为0。)
<4>max()函数:“select max(字段名) from 表名;”
(注:用于计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算。)
<5>min()函数:“select min(字段名) from 表名;”
(注:用于计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算。)
3)分组查询:“select 字段名1,字段名2,…… from 表名 group by 字段名1,字段名2,……;”
(注:1>进行分组。 2>通常与聚合函数一起使用。)
4)having子句:“select 字段名1,字段名2,…… from 表名 group by 字段名1,字段名2,……[having 条件表达式];”
(注:1>用于在分组后对数据进行过滤,在它后面可以使用聚合函数。 2>而WHERE子句是在分组前对数据进行过滤,在它后面不可以使用聚合函数。)
5)limit分页:“select 字段名1,字段名2,…… from 表名 limit [m,]n;”
(注:1>第一个参数m是可选的,代表起始索引,若不指定,则使用默认值0,代表第一条记录。 2>第二个参数n是必选的,代表从第m+1条记录开始,取n条记录。)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报