DQL
1.简单查询
查询一个字段
select 字段名 from 表名;
查询两个字段
select 字段名1,字段名2 from 表名;
查询多个字段
select 字段名1,字段名2,字段名3,... from 表名;-- 不推荐-- 效率低、可读性差select * from 表名;
起别名
-- 起别名 as关键字(只是显示,原表关键字不变)select DNAME as new from dept;-- 只用空格也行select DNAME new from dept;-- 这个时候别名不能有空格-- 如果必须要在别名中加空格,可以用 '' 或者 "" 括起来 建议统一用 ''select DNAME 'new 1' from dept;-- 别名是中文用''select DNAME '年薪' from dept;
字段使用数学表达式
字段可以参与 ' +-*/ '运算select ENAME,SAL*100 from emp;
2.条件查询
select ...from ...where 条件;
/* < <= >>=<> 或 !=>= and <= 相当于 between ... and ... 左小右大 左闭右闭*/select EMPNO, ENAME from emp where SAL = 800;-- null不能用 = ,只能用 isselect EMPNO, ENAME from emp where COMM is null
select EMPNO, ENAME from emp where JOB = 'MANAGER' and SAL = 2450;select EMPNO, ENAME from emp where SAL = 800 or SAL = 1600;-- and or 同时出现 and 的优先级大于 or 需要加()-- in 和 orselect EMPNO, ENAME, JOB from emp where JOB = 'MANAGER' or JOB = 'SALESMAN';select EMPNO, ENAME, JOB from emp where JOB in ('MANAGER', 'SALESMAN');select EMPNO, ENAME, JOB from emp where JOB not in ('MANAGER', 'SALESMAN');
-- % :任意多个-- _ :任意一个-- %o% 中间有o-- %o 末尾是o-- o% 开始是oselect ENAME from emp where ENAME like '%o%';-- _A% 第二个为aselect ENAME from emp where ENAME like '_A%';-- \转义字符 \_select ENAME from emp where ENAME like '%\_%';
3. 排序
-- order -- 指定降序 desc-- 指定升序 ascselect ENAME,SAL from emp order by SAL;select ENAME,SAL from emp order by SAL desc;select ENAME,SAL from emp order by SAL asc;
多字段排序
-- 第一个字段主导 sal,只有当 sal 相同时,才用到第二个字段 enameselect ENAME,SAL from emp order by SAL, ENAME;
练习
-- 找出sal 在 1250到3000 的员工,按照降序select ENAME, SALfrom empwhere SAL between 1250 and 3000order by SAL desc ;-- 关键字顺序不能变 s -> f -> w -> ob