DQL:查询语句
- 排序查询
-
语法:order by 字句
- order by 排序字段1 排序方式1, 排序字段2 排序方式2
-
排序方式
- ASC:升序,默认得
- DESC:降序
-
例子
SELECT * FROM student ORDER BY math ASC,english ASC; //查询学生表的所有数据,按照数学成绩升序排序,如果数学成绩一样,按照英语成绩升序排列
-
-
注意
- 如果有多个排序条件,则当第一个条件一样时,才会判断第二条件
-
聚合函数
- count():计算个数,一般选择非空列,主键
- max():计算最大值
- min():计算最小值
- sum():计算和
- avg():计算平均值
- 注意:聚合函数得计算,排除null值。
- 解决方法:
- 选择不包含非空列进行计算
- IFNULL()函数
-
分组查询
语法:group by 分组字段;
-
注意:
- 分组之后查询得字段:分组字段、聚合函数
- where和having的区别?
- where在分组之前限定,having在分组之后限定
- where后不可以跟聚合函数,having后可以使用聚合函数
-
例子:
-
按照性别分组,分别查询男、女同学的平均分和人数
SELECT sex,AVG(math) ,COUNT(id) FROM student GROUP BY SEX;
按照性别分组。分别查询男女生的平均分、人数,低于70分的不参加统计
SELECT sex,ACG(math),COUNT(id) FROM student where math > 70 GROUP BY sex;
-
按照性别分组。分别查询男女生的平均分、人数,低于70分的不参加统计 ,分组之后,人数要大于2个人
SELECT sex,AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2;
-
-
分页查询
语法:limit 开始的的索引,每页查询的条数
-
公式:开始的索引 = (当前的页码-1)* 每页的条数
SELECT * FROM student LINIT 0,3 //第一页
SELECT * FROM student LINIT 3,3 //第二页
SELECT * FROM student LINIT 6,3 //第三页
limit是MySQL特有的语法