MySQL 视频课 · 50 集 / DQL 进阶:分组、排序、分页、综合案例、执行顺序 / P20

第 20 集 / 共 50 · DQL 进阶:分组、排序、分页、综合案例、执行顺序 · 视频 p=20 · 时长 5:34

P20 20. 基础-SQL-DQL-分页查询

讲义 2.6.7 分页查询 p48

按主题对应,非逐句切分

来源与核对说明

以同版讲义的公开镜像核对章节与页码(镜像非官方出品);非逐字稿,示例为原创补充。

本页是学习笔记,不等同于视频逐字稿。原声字幕未取得(匿名接口字幕轨为空且需登录,未使用任何账号),也没有逐句讲解记录;讲义只按节与页码对应,切点未逐句确证。

讲义索引:p48 · 2.6.7 分页查询 · 切点 notexact

讲义是第三方公开镜像(95 页 PDF),不是官方原件;这里只用它核对章节顺序与页码,不转载正文。

完整来源说明与变更记录 →

看视频,对照阅读:在新标签打开原视频(p=20)

分页查询只有一个 LIMIT,但要算对起始索引,并配一个确定的排序。

复习模式:快速跳知识点(详解在下方各节)

复习顺序:先看“一句话理解”能否复述,再扫步骤,最后做自测;答不出时回到小例与易错。

一句话理解

LIMIT 让查询只返回一段连续的行,用来做“第几页”。

按这 4 步做

  1. 写 LIMIT 起始索引, 查询记录数;起始索引是“跳过多少行”,从 0 开始数。
  2. 换算页码:起始索引 =(页码 − 1)× 每页条数。第 2 页每页 10 条就是 LIMIT 10, 10。
  3. 第一页可以省略起始索引,直接 LIMIT 10;但这种省略只在第一页成立。
  4. 分页前先写 ORDER BY,否则每次“跳过”的可能不是同一批行。

小例

先准备本集练习数据:p20.sql · 练习库说明

SQL 示例
SELECT id, name
FROM employee
ORDER BY id
LIMIT 2, 2;

【原创演示】四行练习数据按 id 升序是 1、2、3、4。LIMIT 2,2 表示跳过前 2 行再取 2 行,所以返回 id 3(小陈)和 id 4(小李)。如果写成 LIMIT 2 则只取前 2 行,含义完全不同。

易错点

30 秒速记

LIMIT 偏移, 条数;偏移 =(页码−1)×每页条数;第一页可只写条数;分页必须配 ORDER BY。

自测(2 题,先答再展开)

自测 1:每页 5 条,要第 3 页,LIMIT 后面写什么?

LIMIT 10, 5。(3−1)×5 = 10,跳前两页共 10 行,再取 5 行。

自测 2:既然 LIMIT 能截断,为什么还强调先 ORDER BY?

LIMIT 只按数据库返回的顺序截取,而没写 ORDER BY 时这个顺序不确定;同一句 SQL 两次执行可能截到不同的行。

材料与来源

展开材料出处、讲义页码与证据等级
材料类型 / 位置支持了什么
P20 原视频页(BV1Kr4y1i7ru)平台视频页 · P20;采样静帧 t012/t20/t30/t40/t50/t60/t70/t80/tendt30/t40/t50/tend 为“DQL-分页查询 1.语法”页。
MySQL 8.0 Reference:SELECT … LIMIT官方文档核对 LIMIT 的两种参数含义,未逐字引用。

按 t30/t40/t50/tend 帧核对:画面为“DQL-分页查询 1.语法”,语法行是 SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数;页内注明起始索引从 0 开始、等于(页码−1)×每页记录数、第一页可简写 limit 10、分页是数据库方言。无字幕,讲师口述与演示结果未核实,小例与数字为原创。

讲义对照:讲义 2.6.7 分页查询 · p48(公开镜像;按主题对应,切点 notexact)

  • 画面静帧 9 帧,采样点 0:12–5:21 / 全片 5:34(只用于确认画面主题,不作内容边界)
  • 原声字幕未取得:匿名接口字幕轨为空且需登录,未使用任何账号

等级含义:平台视频页 / 官方文档 / 课件 = 原始材料;二手整理 = 参考;推断 = 未经核实。站内补充的解释与练习会在此说明。

下载本集 Markdown