- 限制查询结果的数量
- 开始的行数:从 0 开始记数, 如果省略则默认为 0
- 查询记录的条数:返回的行数
-- 限制查询结果行数
SELECT 列名1, 列名2...
FROM 表名
LIMIT [开始的行数], <查询记录的条数>
-- 使用 OFFSET 关键字指定开始的行数
SELECT 列名1, 列名2...
FROM 表名
LIMIT <查询记录的条数> OFFSET <开始的行数>
-- 展示前 10 条员工信息
SELECT * FROM employees LIMIT 10;
SELECT * FROM employees LIMIT 0, 10;
SELECT * FROM employees LIMIT 10 OFFSET 0;
-- 显示年薪从高到低排序,第 15 位到第 20 位员工的编号和年薪
SELECT
emp_no, salary
FROM
salaries
ORDER BY salary DESC
LIMIT 14, 6;
SELECT
emp_no, salary
FROM
salaries
ORDER BY salary DESC
LIMIT 6 OFFSET 14;
-- 基础查询语法
SELECT DISTINCT <列名>
FROM <表名>
WHERE <查询条件表达式>
GROUP BY <分组的列名>
HAVING <分组后的查询条件表达式>
ORDER BY <排序的列名> [ASC / DESC]
LIMIT [开始的行数], <查询记录的条数>
@startuml
autonumber
原始数据库 -> 虚拟表1: FROM 子句
虚拟表1 -> 虚拟表2: WHERE 子句
虚拟表2 -> 虚拟表3: GROUP BY 子句
虚拟表3 -> 虚拟表4: HAVING 子句
虚拟表4 -> 虚拟表5: SELECT
虚拟表5 -> 虚拟表6: DISTINCT
虚拟表6 -> 虚拟表7: ORDER BY 子句
虚拟表7 -> 最终结果: LIMIT
@enduml