DQL排序查询以及聚合函数和分组查询还有分页查询
DQL:查询语句
1.排序查询
语法:select * from 表名 order by 列名;
- order by 排序字段1 排序方式1 ,排序字段1 排序方式2...

排序方式:
- ASC:升序,默认的
- DESC:降序
注意:
- 如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件

2.聚合函数(将一列数据作为一个整体,进行纵向的计算)
- count:计算个数
- 一般选择非空的列:主键
- count(*)
- max:计算最大值
- min:计算最小值
- sum:计算和
- avg:计算平均值
注意:聚合函数的计算,排除null值
- 解决方案:
- 选择不包含非空的列进行计算
- IFNULL函数

3.分组查询
语法:select 列名(性别),计算平均分(数学成绩) from 表名 group by 列名(性别);
- group by 列名;

按照性别分组,分别查询男,女同学的平均分,人数

按照性别分组,分别查询男,女同学的平均分,人数 要求:分数低于70分的人,不参与分组

按照性别分组,分别查询男,女同学的平均分,人数 要求:分数低于70分的人,不参与分组,分组之后,人数要大于2个人

要求:起别名,分组之后 人数要大于2个人

注意:
- 分组之后查询字段:分组字段,聚合函数
- where having 的区别?
- where 在分组之前进行限定,如果不满足条件,则不参与分组,having在分组之后进行限定,如果不满足结果,则不会被查询出来
- where后面不能跟聚合函数,因为where执行顺序大于聚合函数,having可以进行聚合函数的判断
- 执行顺序 : where >group by > having
4.分页查询
- 语法:limit 开始索引,每页查询的条数;
- 公式:开始的索引 = (当前的页码-1)* 每页显示的条数
- limit 是一个MySQL“方言”


浙公网安备 33010602011771号