目录
语法与背景
- 分页查询的必要性
在项目开发中,当查询结果数据量庞大时,为提升用户体验,常采用分页展示方式。如京东搜索页面和 CRM 项目中的表格,底部均设有分页条,用户点击页码即可查看对应页面数据。 - 语法结构
分页查询需在 DQL 语句末尾添加LIMIT
关键字,后接两个参数:起始索引与每页展示记录数,参数间以逗号分隔。起始索引从 0 起始,用于明确从哪条记录起查询;每页展示记录数则确定每页所显示的数据量。例如,LIMIT 0, 5
意即从第 0 条记录起查询 5 条数据,此查询将返回前 5 条记录。
分页查询演示
演示一
从起始索引 0 开始,每页展示 5 条记录查询员工数据
SQL 语句:
SELECT *
FROM tb_emp
LIMIT 0, 5;
执行结果:
精准返回前 5 条员工数据,因起始索引 0 对应首条记录,查询数量为 5 条。此语句适用于展示首页数据或首次查询数据场景,为用户呈现数据初始部分,助其快速概览信息,无需浏览全部海量数据。
演示二
查询第一页员工数据(每页展示 5 条记录)
SQL 语句:
SELECT *
FROM tb_emp
LIMIT 0, 5;
或者
SELECT *
FROM tb_emp
LIMIT 5;
(查询第一页时起始索引 0 可省略)
执行效果:与前一查询相同,获取前 5 条员工数据。此简化语法为常见分页查询场景提供便利,使代码简洁易读,提升开发效率,尤其在仅需展示首页数据且每页记录数固定时,优势凸显。
演示三
查询第二页员工数据(每页展示 5 条记录)
- 计算起始索引:依据公式 “起始索引 =(页码 - 1)× 每页展示记录数”,第二页起始索引为
。
SQL 语句:
SELECT *
FROM tb_emp
LIMIT 5, 5;
执行输出:
返回第 6 至 10 条员工数据,符合第二页数据范围。此查询在多页数据展示中至关重要,确保用户翻页查看时获取准确对应页面数据,维持数据展示连贯性与逻辑性,提升用户交互体验。
演示四
查询第三页员工信息(每页展示 5 条记录)
- 起始索引计算:依公式得第三页起始索引为
。
SQL 语句:
SELECT *
FROM tb_emp
LIMIT 10, 5;
执行呈现:
成功获取第 11 至 15 条员工数据,精准满足第三页数据需求。此查询拓展了分页查询应用,适用于深度浏览数据场景,如用户在多页数据中精准定位至第三页,获取所需信息片段。
总结
- 关键要点回顾
核心在于掌握LIMIT
关键字及起始索引与每页记录数参数用法。起始索引从 0 起算,决定查询起始位置;每页记录数决定每页数据容量。同时牢记起始索引计算公式 “起始索引 =(页码 - 1)× 每页展示记录数”,此为实现灵活准确分页查询之关键,助开发者依不同页码需求计算正确起始索引,确保数据分页精准性与一致性。 - 实际应用考量
实际开发中,前端通常传页码而非起始索引,后端接收页码后依公式换算起始索引以执行查询。如接收页码为 4、每页记录数 10,则起始索引为,查询语句为LIMIT 30, 10
。此外,分页查询属数据库方言,不同数据库实现各异。MySQL 用LIMIT
,Oracle 借rownum
伪列与子查询实现。开发者切换数据库时,需留意并调整分页查询语句,确保系统数据展示功能正常稳定,避免因数据库差异致分页功能失效或数据错乱。
END
学习自:黑马程序员——JavaWeb课程