Appearance
排序
不使用排序操作,默认情况下查询结果的排序是按照添加数据的顺序。
sql
# 薪资从高到低排序
SELECT first_name, last_name, salary
FROM employees
ORDER BY salary DESC;
# 薪资从低到高排序
SELECT first_name, last_name, salary
FROM employees
# 如果 ORDER BY 后没有指明排序方式,默认按照升序排序(ASC)。
ORDER BY salary ASC;
# ORDER BY 中可以使用别名
SELECT first_name, last_name, salary * 12 as annual_sal
FROM employees
ORDER BY annual_sal;
# WHERE 中不可以使用别名,报错。
SELECT first_name, last_name, salary * 12 as annual_sal
FROM employees
WHERE annual_sal > 1000;
# 执行顺序是先走 FROM 和 WHERE 得到一块数据,再走 SELECT(此时可能定义别名),
# 最后走 ORDER BY,所以 WHERE 中无法使用别名。
SELECT first_name, last_name
FROM employees
WHERE department_id in (50, 60, 70)
ORDER BY department_id DESC;
# 二级排序
# 显示员工信息,按照 department_id 降序排序,同部门的 salary 升序排序。
SELECT first_name, last_name, salary, department_id
FROM employees
WHERE department_id in (50, 60, 70)
ORDER BY department_id DESC, salary;分页
sql
# 每页显示 5 条记录,此时显示第 1 页。
SELECT first_name, last_name, salary
FROM employees
# 第一个数字是位置偏移量,第二个数字是条目数。
LIMIT 0, 5;
# 每页显示 5 条记录,此时显示第 2 页。
SELECT first_name, last_name, salary
FROM employees
LIMIT 5, 5;
# 每页显示 pageSize 条记录,此时显示第 pageNo 页。
# LIMIT (pageNo - 1) * pageSize, pageSize;
SELECT first_name, last_name, salary
FROM employees
LIMIT 5, 5;
# LIMIT 子句必须放在整个 SELECT 语句的最后
SELECT first_name, last_name, salary
FROM employees
WHERE salary > 10000
ORDER BY salary
# LIMIT 0, 5; 的简写
LIMIT 5;
# 只显示第 5 和 第 6 条数据
SELECT first_name, last_name, salary
FROM employees
WHERE salary > 10000
# LIMIT 4, 2;
# 8.0 新特性
LIMIT 2 OFFSET 4