SQL分页查询是指在查询结果中按照一定规则分页显示数据。在实际应用中,分页功能是十分常见的功能,MySQL和Oracle等主流数据库都提供了分页功能,下面我们来介绍SQL分页查询几种写法。
LIMIT分页查询
在MySQL数据库中,常用的分页手段是使用LIMIT语句。LIMIT语句可以用来控制从哪一行开始查询,查询的行数是多少。
SELECT * FROM table_name LIMIT start, count;
上面的start表示从哪一行开始查询,count表示查询的行数。
示例1:
假设需要查询表students中的前10行数据,可以这样写SQL语句:
SELECT * FROM students LIMIT 0, 10;
示例2:
现在需要查询表students中的第11行到第20行数据,可以这样写SQL语句:
SELECT * FROM students LIMIT 10, 10;
以上两个示例分别查询了不同范围内的数据。
ROW_NUMBER分页查询
在Oracle数据库中,可以使用ROW_NUMBER()函数进行分页查询。ROW_NUMBER()函数会将查询结果的每一行都分配一个序号,可以通过该序号来筛选查询结果中的任意一部分。
SELECT *
FROM (
SELECT t.*, ROW_NUMBER() OVER (ORDER BY sort_column) row_num
FROM table_name t
) temp
WHERE temp.row_num BETWEEN start AND end;
上面的start和end分别表示查询结果的起始和终止位置。
示例1:
假设需要查询表students中的前10行数据,可以这样写SQL语句:
SELECT *
FROM (
SELECT t.*, ROW_NUMBER() OVER (ORDER BY student_id) row_num
FROM students t
) temp
WHERE temp.row_num BETWEEN 1 AND 10;
查询结果为表students中的前10行数据。
示例2:
现在需要查询表students中的第11行到第20行数据,可以这样写SQL语句:
SELECT *
FROM (
SELECT t.*, ROW_NUMBER() OVER (ORDER BY student_id) row_num
FROM students t
) temp
WHERE temp.row_num BETWEEN 11 AND 20;
查询结果为表students中的第11行到第20行数据。
以上是SQL分页查询的两种常见写法,可以根据具体的需求选择适合自己的方法来实现分页查询。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:sql分页查询几种写法 - Python技术站