dql–数据查询语言
简单查询
条件查询
排序查询
将查询结果按照一定规则排序
语法:
SELECT * | 列名 | 常量 | 计算 | 函数 ----展示
FROM 表 ----数据源
WHERE 过滤条件 ----过滤数据
ORDER BY 排序内容 ASC | DESC //ASC升序,DESC降序
例题:
查询员工信息,要求结果按照工资升序
SELECT * FROM emp ORDER BY sal ASC; //不写ASC默认是升序
查询员工信息,要求结果按照部门升序,同一部门再按照工资降序
SELECT * FROM emp ORDER BY deptno ASC , sal DESC;
order by 后面能放多个列,先按第一列排序,相同时再按下一列排序。
用逗号隔开,谁在前先按谁排,先排部门,再排工资、
例题:
查询工资大于两千的员工信息,要求结果按照部门升序,同一部门再按照工资降序
SELECT * FROM emp WHERE sal>2000 ORDER BY deptno ASC , sal DESC;
注意,如果存在空值,空值是无限大的,在排序的时候最大。如果不希望空值在前,可以在语句最后添加 NULLS LAST,使空值放到最后。如
SELECT * FROM emp ORDER BY comm DESC;
SELECT * FROM emp ORDER BY comm DESC NULLS LAST;
练习题:
1.查询员工编号、姓名、薪资、部门编号,按部门升序及薪资降序排列
2.查询除20号部门外,员工编号、姓名、薪资、部门编号,按部门升序、薪资升序、工号降序排列
3.查询员工姓名、薪资、佣金、薪资佣金合计,按薪资佣金合计值升序排列,
薪资佣金以“总计” 二字显示
4.统计员工姓名及员工资历,并按资历排序,将老员工排在前,新员工排在后
SELECT empno,ename,sal,deptno FROM emp ORDER BY deptno ASC, sal DESC;
SELECT empno,ename,sal,deptno FROM emp WHERE deptno !=20 ORDER BY deptno,sal,empno DESC;
SELECT ename,sal,comm,(sal+comm) as '总计' FROM emp ORDER BY (sal+comm) ;
SELECT ename,hiredate FROM emp ORDER BY hiredate;
(ORDER BY 后面能直接使用别名)
分组查询
完整的查询语句
DML–数据操纵语言
DDL–数据定义语言
未更新
dcl–数据控制语言
未更新
tcl–事务控制语言
未更新