DML与DQL
DML-介绍
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。
三个关键字:
添加数据:insert
修改数据:update
删除数据:delete
DML-添加数据
1.给指定字段添加数据
insert into 表名(字段名1,字段名2,...) values (值1,值2,...);
2.给全部字段添加数据
insert into 表名 values (值1,值2,...);
3.批量添加数据
insert into 表名(字段1,字段2,...) values (值1,值2,...),(值1,值2,...),(值1,值2,...);
insert into 表名 values(值1,值2...),(值1,值2...),(值1,值2...);
注意:
●插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
●字符串和日期类型数据应该包含在引号中。
●插入数据的大小,应该在字段的规定范围内。
DML-修改数据
update 表名 set 字段名1=值1,字段名2=值2,...[where 条件];
注意:
修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据
DML-删除数据
delete from 表名 [where 条件];
注意:
●delete语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的数据。
●delete语句不能删除某一个字段的值(可以使用update将字段设为null)。
DQL-介绍
DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。
查询关键字:select
DQL语法
编写顺序
select
字段列表
from
表名列表
where
条件列表
group by
分组字段列表
having
分组后条件列表
order by
排序字段列表
limit
分页参数
DQL-基本查询
1.查询多个字段
select 字段1,字段2,字段3...from 表名;
select * from 表名;
2.设置别名
select 字段1 [as 别名],字段2 [as 别名]...from 表名;
其中as可以省略
3.去除重复记录
select distinct 字段列表 from 表名;
DQL-条件查询
1.语法
select 字段列表 from 表名 where 条件列表;
2.条件
比较运算符 | 功能 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
= | 等于 |
<>或!= | 不等于 |
between...and... | 在某个范围内(含最大、最小值) |
in(...) | 在in之后的列表中的值,多选一 |
like 占位符 | 模糊匹配(_匹配单个字符,%匹配多个字符) |
is null | 是null |
逻辑运算符 | 功能 |
---|---|
and或&& | 并且(多个条件同时成立) |
or或|| | 或者(多个条件任意一个成立) |
not或! | 非,不是 |
DQL-聚合函数
1.介绍
将一列数据作为一个整体,进行纵向计算
2.常见聚合函数
函数 | 功能 |
---|---|
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
3.语法
select 聚合函数(字段列表) from 表名;
注意:null值不参与所有聚合函数运算
DQL-分组查询
1.语法
select 字段列表, from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
2.where和having区别
◉ 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤
◉ 判断条件不同:where不能对聚合函数进行判断,而having可以
注意:
◉执行顺序:where>聚合函数>having
◉分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无如何意义
DQL-排序查询
1.语法
select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
2.排序方式
◉ asc :升序(默认值)
◉desc:降序
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段排序
DQL-分页查询
1.语法
select 字段列表 from 表名 limit 起始索引,查询记录数;
注意:
◉起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数
◉分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是limit
◉如果查询的是第一页的数据,起始索引可以省略,直接简写为limit 10
DQL-执行顺序
from
表名列表
where
条件列表
group by
分组字段列表
having
分组条件列表
select
字段列表
order by
排序字段列表
limit
分页参数