分页查询:就是将数据分段查询出来,一次只查询数据的一部分这样做可以减少系统资源开销,减少数据量,可以提高网络传输速度分页在不同的数据库中的SQL语句是不同的
1.Oracle分页查询中提供了一个伪列:ROWNUM
ROWNUM字段不存在于任何一张表中,但是每张表都可以查询该字段。该字段的值是结果集中每条记录的行号ROWNUM字段的值是动态生成的,伴随查询过程。只要可以查询出一条记录,ROWNUM就会为该条记录生成行号,从1开始每次递增1。
由于ROWNUM是在查询表的过程中进行编号的,所以在使用ROWNUM对结果集编行号的查询过程中不要使用ROWNUM做大于1以上数字的判断,否则结果集没有任何数据
如:select * from table_A where rownum>1是查不到任何数据的,同样,下面的语句也是查不到任何数据的
SELECT *
FROM(
SELECT ROWNUM rn,p.*
FROM table_A p
)
WHERE rn BETWEEN 6 AND 10
如果想查出来表中6到10之间的数据,可以先把伪列查出来当做表中的一个字段,然后对该字段做where条件查询
select * from
(select * from
(select rownum rn,p.* from table_A p)
where rownum <= 10)
where rn > 6
2.mysql中的分页查询则比较简单,只需要用limit关键词就可以
如:select * from table_A limint 6,10
limit m,n表示从第m+1条数据开始查询,连续查出n条数据
limit m表示从第一条数据开始查询,联系查询m条数据,等同于 limit 0,m
3.如果做手动分页查询,可用下面的方法
start:(page-1)*rows+1
end:page*rows
page:页数 rows:每页显示的记录数