MySQL数据库系列内容的学习目录 → \rightarrow →老杜带你学MySQL学习系列内容汇总。
4. 排序
排序采用 order by
子句,order by
后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,默认采用升序。如果存在 where
子句,那么 order by
必须放到 where
语句的后面。
4.1 单一字段排序
- 按照薪水由小到大排序(系统默认升序):
select * from emp order by sal;
- 查询 job 为 MANAGER 的员工,按照薪水由小到大排序(系统默认升序):
select * from emp where job='MANAGER' order by sal;
如果包含where
语句,order by
必须放到where
后面,如果没有where
语句,order by
放到表的后面。
4.2 手动指定排序顺序
- 手动指定按照薪水由小到大排序:
select * from emp order by sal asc;
- 手动指定按照薪水由大到小排序:
select * from emp order by sal desc;
4.3 多个字段排序
如果采用多个字段排序,如果根据第一个字段排序重复了,会根据第二个字段排序。
- 按照多个字段排序,如:首先按照 job 排序,再按照 sal 排序:
select * from emp order by job,sal;
- 按照 job 和薪水倒序:
select * from emp order by job desc, sal desc;
4.4 使用字段的位置来排序
- 按照薪水升序:
select * from emp order by 6;
不建议使用此种方式,因为采用数字含义不明确,程序不健壮,列的顺序可能会被修改。
4.5 综合案例
- 找出工资在1250到3000之间的员工信息,要求按照薪资降序排列:
select ename,sal from emp where sal between 1250 and 3000 order by sal desc;
关键字顺序不能变:
select
...
from
...
where
...
order by
...
以上语句的执行顺序:
第一步:from
第二步:where
第三步:select
第四步:order by(排序总是在最后执行!)