一.排序
1.一级排序
如果没有使用排序操作, 在默认情况下查询返回的数据是按照添加数据的顺序显示的
使用 ORDER BY 对查询到的数据进行排序操作
升序: ASC
降序: DESC
#工资升序排序
SELECT last_name, salary
FROM employees
ORDER BY salary #默认升序
#ORDER BY salary ASC #升序
#ORDER BY salary DESC # 降序
重要
#可以使用列的别名进行排序
SELECT last_name, salary * 12 AS annual_sal
FROM employees
ORDER BY annual_sal
#列的别名只能在 ORDER BY 中使用, 不能在WHERE中使用
#因为语句是先执行FROM 和 WHERE 再执行SELECT
SELECT last_name, salary * 12 AS annual_sal
FROM employees
WHERE annual_sal > 31200 #出错
WHERE 需要声明在FROM后, ORDER BY之前
SELECT employee_id, salary
FROM employees
WHERE department_id IN (50,60,70)
ORDER BY department_id DESC
2.二级排序
#先按照department_id 降序排列, 相同的按照salary的升序排序
SELECT department_id, salary
FROM employees
ORDER BY department_id DESC, salary ASC
二.分页
1.背景
背景1 : 查询返回的数据太多,需要实现分页
背景2 : 表里有20条数据,我们只想查询第10-15条数据
LIMIT 始, 条目数
SELECT employee_id, last_name
FROM employees
#LIMIT 0,10;
#其实,从0开始,0可以省略
LIMIT 10;
SELECT employee_id, last_name
FROM employees
LIMIT 10,10;
SELECT employee_id, last_name, salary
FROM employees e
WHERE salary > 6000
ORDER BY salary DESC
LIMIT 10;
#查询显示第32,33条数据
SELECT employee_id, last_name, salary
FROM employees e
LIMIT 31,2;
#同题, MySQL8.0新特性 LIMIT...OFFSET
SELECT employee_id, last_name, salary
FROM employees e
LIMIT 2 offset 31;
2.分页的好处
1.减少数据表的网络传输量
2.提升查询效率