MySQL命令大全——DQL(数据查询语言)

mac2022-06-30  11

一、基础查询

  查询所有列

  select * from 表名;

  

  查询指定列

  select 字段1, 字段2  from 表名;

  

二、条件查询

    查询时给出where子句,来限定查询的结果符合某些要求

    运算符及关键字:

      =, !=, <>, >=, <=, >, < 

        select * from student where s_age>20;

      between A and B——在A与B之间(包括A和B)

        select * from student where s_age between 19 and 30;

      in(value1, value2, value3...valuen) ——值在value1, value2, value3...valuen之中

         select * from student where s_id in('20170001', '20170003', '20170005');      

      is null —— 值为空

         select * from student where s_name is null;

      and/or/not —— 与/或/非

        select * from student where s_id in('20170001', '20170003', '20170005') and s_age>20;

          select * from student where s_age>20 or s_age<9;

          not与is null结合时候有两种语法:

          1、select * from student where s_name is not null;

          2、select * from student where not s_name is null;

三、模糊查询

    关键字:like

    使用下划线'_'代表任意一个字符

    使用'%'代表任意零到多个字符

    例:查询以s开头,总共五个字母的学生姓名:

      select * from student where s_name like 's____';  //后面四个下划线

      查询学生姓名中含有s的学生姓名

      select * from student where s_name like '%s%';

四、字段控制查询

    1、去除重复记录

    关键字:distinct

    当查询员工表emp中有哪些工资sal值时,当出现相同的工资记录时,我们需要去重

    select distinct sal from emp;

    2、查询求和

    例:查询员工表emp中员工信息以及查看员工薪资sal与奖金comm之和

    select *, sal+comm from emp;

    注:只有两者都是数值类型才能相加,其中有一个不是数值类型就会报错,任何类型与NULL相加都为NULL

    如果在奖金comm字段中有null值,结果就会有误,这时我们需要将null值改成0;

    语法:select *, sal+ifnull(comm, 0)  from emp;

    3、给查询结果起别名

    select *, sal+ifnull(comm,0) as total from emp;

     注:as可以省略,但一般保留

五、排序

    关键字:order by

        asc 升序;   desc 降序

    例:查询所有学生记录,按年龄升序排列

      select * from student order by age; //默认升序

      select * from student order by age asc;

      查询所有学生记录,按年龄降序排列

      select * from student order by age desc;

      当涉及到有多重排序规则时,按排序规则的先后顺序进行排序,如:查询所有员工,并按薪资降序排列,当薪资相同时按员工编号升序排列

      select * from emp order by sal desc, id asc;

六、聚合函数

    聚合函数是用来做纵向运算的函数

COUNT():统计指定列不为NULL的记录行数;MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0。

例:统计薪资sal在3000以上的员工人数

 select count(sal) from emp where sal>3000;

  查询平均工资:

 select avg(sal) from emp;

七、分组查询

    按字段分类,查询结果

    关键字:group by

    例:查询员工表emp中部门编号deptno和每个部门的工资之和

      select deptno, sum(sal) from emp group by deptno;

八、限定结果起始行和总行数

    关键字:limit

    例:查询员工表emp中薪资在前三名的员工信息

    select * from emp order by sal desc limit 0,3;

    

    作用:分页

    

    

  

转载于:https://www.cnblogs.com/stitchWyq/p/6789488.html

最新回复(0)