用来查询数据库中的表记录;
基础结构:
select 字段列表(要查哪些字段)
from 表名列表
where 条件列表
group by 分组字段列表
having 分组后条件列表
order by 排序
limit 分页参数
查询详解:
1.查询多个字段:
select 字段1,字段2... from 表名;
2.设置别名:
select 字段1 [as 别名1] from 表名;
3.去重:
select distinct 字段列表 from 表名;
4.条件查询:
select 字段列表 from 表名 where 条件列表;
5.聚合函数:
将一列数据作为一个整体进行纵向计算;
count 计数
max 最大值
min 最小值
avg 平均值
sum 求和
select 聚合函数(字段列表) from 表名;
注意:null值不参与聚合计算;
6.分组查询:
select 字段列表
from 表名 [where ...]
group by 分组字段名
[having 分组后过滤条件];
where 和 having区别:
执行时机不同:
where分组前过滤,不满足where不进行分组;
having是对分组后结果进行过滤;
判断条件不同:
where不可以对聚合函数进行判断;
having可以;
注意:
执行顺序:where > 聚合函数 > having
分组之后:查询字段一般为聚合函数和分组字段,查询其他字段无意义;
7.排序查询 :
select 字段列表 from 表名 order by 字段1 排序方式,字段2 排序方式;
asc:升序;desc:降序;
如果是多字段排序,当第一个字段值相同时,才会根据第二个字段排序;
8.分页查询:
select 字段列表 from 表名 limit 起始索引,查询记录数;
起始索引从0开始;
起始索引 = (查询页码 - 1)* 每页记录数;
如果查询时从第一页数据开始,起始索引可以省略;
9.DQL执行顺序:
① from
② where
③ group by ... having
④ select
⑤ order by
⑥ limit