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 最后排序(排序总是在最后)
-