首页 > 数据库 >MySQL3 - DQL 数据查询语句基础

MySQL3 - DQL 数据查询语句基础

时间:2023-01-06 15:13:34浏览次数:45  
标签:语句 ename MySQL3 查询 字段 emp DQL ORDER SELECT

DQL 简单查询

查询一个字段
SELECT 字段名 FROM 表名;

select 和 from 都是关键字,字段名和表名是标识符

查询两个或多个字段

使用逗号 "," 隔开

SELECT deptno,dname FROM dept;
查询所有字段
  • 写上所有字段,用逗号隔开

  • 写上 * ,表示全部

    • SELECT * FROM dept;
      
    • 效率低、可读性差,在实际开发中不推荐使用

给查询的列起别名
  • SELECT deptno, dname AS depname FROM dept;
    SELECT deptno, dname depname FROM dept; //AS 可省略
    SELECT deptno, dname 'dep name' FROM dept; //别名有空格,需要用单引号或双引号括起来
    
  • 只是将显示的查询结果的列显示为depname,原表不改变 -- SELECT语句不进行修改操作

查询结果使用数学表达式 然后再起别名
SELECT ename,sal*12 AS salary FROM emp;

DQL 条件查询

  • 查询符合条件的记录

  • SELECT 字段1,字段2 FROM 表面 WHERE 条件;
    
  • 条件类型

    • = < > != <= >=

    • between ... and ... 左小右大两值之间,等同于 >=... and <= ...

    • is null / is not null 判断是否为空 在数据库当中null不能用 = 衡量,不是一个值

    • and or not 与或非 优先级 and>or,优先级加小括号即可

    • in / not in + 具体的值 ,返回数据中字段的值与 in 给的值匹配的数据

    • like + % + _ 模糊查询

      • % 表示任意多个字符

      • _ 每个下划线表示一个字符

      • 查询名字中有 o 的记录:SELECT ename FROM emp WHERE ename like '%o%';
        
      • 查询名字以 t 结尾的记录:SELECT ename FROM emp WHERE ename like '%t';
        
      • 查询名字中第三个字母是 r 的记录:SELECT ename FROM emp WHERE ename like '__r%';
        
      • 查询名字中有 _ 的记录:SELECT ename FROM emp WHERE ename like '%\_%'; // '\'表示转义
        
  • 排序

    • 根据字段x的值进行排序,默认为升序

      • SELECT 
        	字段1,字段2 
        FROM 
        	表名 
        ORDER BY 
        	字段x;
        
    • 指定**降序 **: descending => DESC 指定升序:ascending => ASC

      • SELECT 
        	字段1,字段2 
        FROM 
        	表名 
        ORDER BY 
        	字段x DESC; 
        
    • 按两个字段或多个字段排序:查询员工名字和薪资,按薪资升序排,薪资相同时按名字升序排

      • SELECT
        	ename,sal 
        FROM
        	emp
        ORDER BY
        	sal ASC, ename ASC;
        
    • 根据字段的位置排序:按第 x 列排序,不推荐使用,因为不健壮,列的顺序会发生改变时失效

      • SELECT
        	ename,sal 
        FROM
        	emp
        ORDER BY
        	2;
        
  • 综合案例

    • 要求查询工资在1250到3000之间的员工信息,按薪资降序排序,薪资相同的按名字升序排

    • SELECT
      	ename,sal 
      FROM
      	emp
      WHERE
      	sal BETWEEN 1250 AND 3000
      ORDER BY
      	sal DESC, ename;
      
    • 关键字顺序不能改变:SELECT -> FROM -> WHERE -> ORDER BY

    • 执行顺序:FROM 确定表 -> WHRER 确定约束 -> SELECT 选出记录 -> ORDER BY 最后排序(排序总是在最后)

标签:语句,ename,MySQL3,查询,字段,emp,DQL,ORDER,SELECT
From: https://www.cnblogs.com/Ashen-/p/17030528.html

相关文章