查询排序
查询排序的语法,ORDER BY子句
如果说在默认情况下进行数据查询的时候,它都会按照自然顺序(数据先后的保存顺序)
所有的自然顺序都是不可控的,所以往往都会由自己来进行排序操作
那么这个时候可以使用ORDER BY语句
SELECT [DISTINCT] * | 列[别名],列[别名] --③ 选出所需要的数据列
FROM 表名称 [别名] --① 确定数据来源
[WHERE 限定条件] --② 筛选数据行
[ORDER BY 排序字段 [ASC|DESC],排序字段 [ASC|DESC],...];--④数据排序
ORDER BY是在SELECT子句之后执行,那么就意味着DRDER BY可以使用SELECT子句定义的别名
对于字段排序有两种形式
- 升序:ASC,默认不写排序也是升序
- 降序:DESC,由高到低进行排序
--按照工资由高到低排序
SELECT * FROM emp
ORDER BY sal DESC;
排序可以在任意数据类型上进行,包括字符串、日期都可以
--按照雇佣日期由早到晚排序
SELECT * FROM emp
ORDER BY hiredate [ASC] ;
--ASC可写可不写,ASC是默认排序方式
除了可以进行单一字段的排序,也可以进行字段的混合排序操作(指的是可以进行若干个字段的排序)
--按照工资由高到低排序,如果工资相同,则按照雇佣日期由早到晚排序
SELECT * FROM emp
ORDER BY sal DESC.hiredate;
所有的排序操作都是在WHERE筛选之后进行的
--查询出所有办事员的编号、职位、年薪,按照年薪由高到低排序
SELECT empno,job,sal*12 income FROM emp
WHERE job='CLERK'
ORDER BY income;
总结
- SELECT子句确定数据行
- WHERE子句控制数据行
- ORDER BY子句永远最后执行