DQL(数据查询语言),用来查询数据库中表的记录
select 【distinct 去重】 字段列表 【as(可以省略as) 别名】
from 表名列表
where 条件列表
group by 分组字段列表
having 分组后条件列表
order by 排序字段列表
limit 分页参数(起始索引,查询记录数)
where 和 having的区别:
执行时机不同: where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
判断条件不同: where不能对聚合函数进行判断,而having可以。
聚合函数 -------null值不参与所有聚合函数运算
select 聚合函数(字段列表) from 表名;
count:统计数量;
max:最大值;
min:最小值;
avg:平均值;
sum:求和
分组查询
分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义
排序查询(order by)
支持多个字段排序,先按第一个字段排序,若第一个字段相同,则按第二个字段,以此类推,之间用逗号隔开。有:
asc:升序(默认值);
desc:降序
分页查询 limit
1.起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。
2.分页查询是数据库的方言,不同的数据库有不同的实现,mysql是limit。
3.如果查询的是第一页数据,起始索引可以省略,直接写为 limit 10。
执行顺序
from>where>group by>having>select>order by>limit