霍格沃兹测试开发

DQL 表查询操作 - LIMIT 关键字

霍格沃兹测试开发学社

ceshiren.com

目录

  • LIMIT 关键字
  • 实例
  • 单表查询总结
  • SQL 语句执行顺序

LIMIT 关键字

  • 限制查询结果的数量
    • 开始的行数:从 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 [开始的行数], <查询记录的条数>

SQL 语句执行顺序

@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