美文网首页
MySQL学习:DQL:查询语句

MySQL学习:DQL:查询语句

作者: 疏醉 | 来源:发表于2020-02-25 14:06 被阅读0次

    1、排序查询

    ORDER BY 排序字段1 排序方式1,排序字段2 排序方式2;

    排序方式:

    ASC:升序,默认的。

    eg:SELECT * FROM student ORDER BY math;

            SELECT * FROM student ORDER BY math ASC;

    DESC:降序。

    eg:SELECT * FROM student ORDER BY math DESC;

    -- 按照数学成绩排名,如果数学成绩一样,则按照英语成绩排名

    SELECT * FROM student ORDER BY math ASC,english ASC;

    注意:

    如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件

    2、聚合函数:将一列数据作为一个整体,进行纵向计算。

    1、count:计算个数

    一般选择非空的列:主键

    count(*)(一列中有不为null的,就算作一个)(不推荐)

    eg:SELECT COUNT(NAME) FROM student;

            SELECT COUNT(english) FROM student;

            SELECT COUNT(IFNULL(english,0)) FROM student;

    2、max:计算最大值

    eg:SELECT MAX(math) FROM student;

    3、min:计算最小值

    eg:SELECT MIN(math) FROM student;

    4、sum:计算和

    eg:SELECT SUM(math) FROM student;(直接可排除null值进行计算)

    5、avg:计算平均值

    eg:SELECT AVG(math) FROM student;

    *注意:聚合函数的计算会排除null值

    解决方案:

    1、选择不包含null的列进行计算

    2、ifnull函数

    3、分组查询:

    1、语法:group by 分组字段

    eg:SELECT sex,AVG(math),COUNT(id) FROM student GROUP BY sex;

    2、注意:

    1、分组之后查询的字段:分组字段,聚合函数

    2、分组之前对条件进行一些限定

      where和having的区别:

      1、where在分组之前进行限定,如果不满足条件,则不参与分组。

        having在分组之后进行判定,如果不满足结果,总不会被查询出来

      2、where之后不可以跟聚合函数,having可以进行聚合函数的判定

    --小于70分不参与分组

    SELECT sex,AVG(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;

    SELECT sex,AVG(math),COUNT(id) 人数 FROM student WHERE math > 70 GROUP BY sex HAVING 人数 > 2;

    4、分页查询

    1、语法:limit 开始的索引,每页查询的条数;

    2、公式:开始的索引 = (当前页码-1)*每页显示的条数

    -- 每页显示3条记录

    SELECT * FROM student LIMIT 0,3;-- 第一页

    SELECT * FROM student LIMIT 3,3;-- 第二页

    -- 公式,开始的索引 = (当前页码-1)*每页显示的条数

    SELECgai'nT * FROM student LIMIT 6,3;-- 第三页

    3、limit是一个mysql分页操作的“方言”

    相关文章

      网友评论

          本文标题:MySQL学习:DQL:查询语句

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