MySQL查询基础

时间:2022-05-03 03:39:22

MySQL查询 DQL(Data Query Language )

  • 1.排序查询

    # 语法:
    select 字段 from 表名 order by 字段1 [降序/升序],字段2 [降序/升序],....;  
    # 排序方式:DESC 降序 ,ASC 升序。不加排序方式的时候,默认使用ACS!!
    order by 后面的字段是排序的条件,只有第一个条件的值相同时,才会使用后面的值进行比较排序
  • 2.聚合函数 :对数据表中的一整个字段数据进行纵向计算操作。

    ? ①count :计算总个数

    ? ②sum:计算总合

    ? ③avg: 计算平均值

    ? ④max:计算最大值

    ? ⑤min:计算最小值

    # 语法:
    select 聚合函数(字段) from 表名;
    # 例如:
    select count(id) from mytable;  -- 利用主键计算总个数
    select sum(mathScore) from mytable; -- 求出数学成绩总和 
    select max(age) from mytable; -- 找出年龄最大的员工,让HR和他谈谈.....
    select min(KPI) from mytable; -- 找出KPI最低的员工,让HR和他谈谈.....

    ? 注意:聚合函数计算的时候,默认是会排除NULL值而使得某些结果不对,例如count函数求取总的age数,但是可能因为某个人的年龄没有设置而导致计算出的总人数比实际的人数更少,解决方法:

    # 1.使用主键进行计算
    select count(id) from mytable;
    # 2.使用ifnull函数把null值设置一个默认值并进行计算
    select count(ifnull(age,0)) from mytable;-- 如果age中有null值,则把它设置为0,并参与总合的计算,这样算出来的总合数就不会少。
  • 3.分组查询

    # 分组查询,以某个字段为分组依据,后面的聚合函数可以有多个
    select 字段1, count(字段2), sum(字段n).... from mytable group by 字段1;
    # 分组查询,附加查询条件
    select 字段1, count(字段2), sum(字段n).... from mytable [where 条件] group by 字段1;
  • 4.分页查询

    select 字段 from 表名 limit 开始分页的位置,当前页展示的数量;
    # 例如:从第三条数据开始展示,总共展示6条数据
    select id,name,age from mytable limit 3,6;