排序与分页
排序 order by … desc;
- 默认是数据的添加顺序
- ORDER BY 进行排序,默认从低到高
- 升序 asc(ascend);降序 desc(descend)
- 列的别名只能在order by中使用,不能在where中使用
- where 声明在 select 后,order by 之前
- 多级排序:order by department_id DESC, salary ASC; department降序下,salary升序。
分页 limit…
- limit n m:从n行开始显示m个; n 可省略默认为0;
- limit m offset n; 新特性
- 数据从第0行开始
- 声明顺序:where… order by… limit…
练习
-
- 查询员工的姓名和部门号和年薪,按年薪降序,按姓名升序显示
select last_name, department_id, salary
from employees
order by salary desc, last_name asc;
-
- 选择工资不在 8000 到 17000 的员工的姓名和工资,按工资降序,显示第21到40位置的数据
select last_name, salary
from employees
where salary not between 8000 and 17000
order by salary desc
limit 20 offset 20;
-
- 查询邮箱中包含 e 的员工信息,并先按邮箱的字节数降序,再按部门号升序
select last_name, email, department_id
from employees
where email regexp '[e]'
order by length(email) desc, department_id asc;