美文网首页
数据库--DQL1 排序查询、聚合函数、分组查询、分页查询

数据库--DQL1 排序查询、聚合函数、分组查询、分页查询

作者: 何以解君愁 | 来源:发表于2022-05-24 19:57 被阅读0次
    SELECT 字段列表 FROM 表名 ORDER BY 排序字段名 [排序方式],排序字段名1 [排序方式1],...;
    排序方式:ASC:升序排列(默认值)  DESC:降序排列
    注:多个排序条件时,前面条件值一样(比如两人年龄相同),才会根据第二条件进行排序
    年龄升序排列:
    select * from student order by age asc;
    select * from student order by age;
    年龄降序排列:
    select * from student order by age desc;
    年龄降序排列,若一样,成绩升序排序:
    select * from student order by age desc,score asc;
    
    聚合函数分类:count统计数量;max最大值;min最小值;sum求和;avg平均值
    select 聚合函数名(列名) from 表(null不参与聚合函数运算)
    --统计有多少名学生
    SELECT count(*) FROM student; /*count取值:①主键②星号*/
    --查询最高分
    SELECT MAX(score) FROM student;
    --查询最低分
    SELECT MIN(score) FROM student;
    --查询总分
    SELECT SUM(score) FROM student;
    --查询平均分
    SELECT AVG(score) FROM student;
    
    分组查询:SELECT 字段列表 FROM 表名 [WHERE分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后过滤]...;
    (分组后,查询的字段为聚合函数与分组字段,查询其他字段无任何意义)
    (where是分组前进行限定,不满足条件不参加分组,不能对聚合函数进行判断,having分组后对结果进行过滤,可以对聚合函数进行判断)
    (执行顺序:where>聚合函数>having)
    --查询男女生各自成绩平均分
    SELECT gender,AVG(score) FROM student GROUP BY gender;
    --查询男女生各自成绩平均分及人数
    SELECT gender,AVG(score),COUNT(*) FROM student GROUP BY gender;
    --查询男女生各自成绩平均分及人数,分数低于70不参加分组
    SELECT gender,AVG(score),COUNT(*) FROM student WHERE score>70 GROUP BY gender;
    --查询男女生各自成绩平均分及人数,分数低于70不参加分组,分组后人数大于2
    SELECT gender,AVG(score),COUNT(*) FROM student WHERE score>70 GROUP BY gender HAVING COUNT(*)>2;
    
    分页查询:SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询条目数;
    (起始索引:从0开始)(计算公式:每页起始索引=(当前页码-1)*每页显示的条数)(查询条目数为显示几条数据)
    --从0开始查询,查询3条数据
    SELECT * FROM student LIMIT 0,3;
    --每页显示3条数据,查询第一页数据
    SELECT * FROM student LIMIT 0,3;
    --每页显示3条数据,查询第二页数据
    SELECT * FROM student LIMIT 3,3;
    --每页显示3条数据,查询第三页数据
    SELECT * FROM student LIMIT 6,3;
    (分页查询limit是MySQL数据库的方言;Oracle分页查询使用rownumber,SQL Server分页查询使用top)
    

    相关文章

      网友评论

          本文标题:数据库--DQL1 排序查询、聚合函数、分组查询、分页查询

          本文链接:https://www.haomeiwen.com/subject/goflprtx.html