文章目录
- 前言
- 一、mysql分页
- 1. limit 10
- 2. limit 10,20
- 二、oracle分页
- 1. ROWNUM
- 2. OFFSET和FETCH
- 三、PostgreSQL
- 1.LIMIT 4
- 2.LIMIT 3 OFFSET 2
- 总结
前言
分页查询作为数据库必不可少的功能,每家数据库厂商都有各自的标准,下面仅记录目前主流数据库。
一、mysql分页
mysql
分页使用limit
关键字,下面我们做了1000条测试数据,id主键列为自增列;
1. limit 10
#limit只有一个参数时,参数代表数据量,下面为从第一条开始,查询10条记录
SELECT id FROM `t_student_info` order by id+0 limit 10 ;
2. limit 10,20
#limit两个参数时,参数1代表数据起始位置,参数2代表数据量,下面为从第10条开始,查询20条记录
SELECT id FROM `t_student_info` order by id+0 limit 10,20;
二、oracle分页
相同的表
oracle
我们也做了1000条测试数据来测试rownum
分页,id主键列为自增列;
1. ROWNUM
#ROWNUM <= 10,查找行号小于且等于10的记录
SELECT id FROM (SELECT id FROM T_STUDENT_INFO ORDER BY id+0) A WHERE ROWNUM <= 10;
#10<ROWNUM <= 30,查找行号大于10且小于等于30的记录
SELECT id FROM (SELECT id,ROWNUM rn FROM (SELECT id FROM T_STUDENT_INFO ORDER BY id+0) A WHERE ROWNUM <= 30)where rn>10;
小结:
ROWNUM
写起来比limit
麻烦点,能满足相同的效果,分页查询基本上用于小范围数据量查询,分页每页数据量大多在10、20、25、50、100;超过100条的很少,除非是很特别的业务。
2. OFFSET和FETCH
OFFSET和FETCH适用于分页数据量大的查询,和limit不能说一模一样吧,只能说用起来很像;
#OFFSET偏移量为10行,获取20行数据记录;
SELECT id FROM T_STUDENT_INFO ORDER BY id+0 OFFSET 10 ROWS FETCH NEXT 20 ROWS ONLY;
三、PostgreSQL
PostgreSQL分页也是使用
limit
,用法和mysql差不多;
我本地没有环境,需要贴几张大哥的图,大哥别打我呀!
1.LIMIT 4
#limit只有一个参数时,参数代表数据量,下面为从第一条开始,查询4条记录
SELECT * FROM COMPANY LIMIT 4;
2.LIMIT 3 OFFSET 2
#偏移量为2条记录,从id为3的记录开始,查询3条记录
SELECT * FROM COMPANY LIMIT 3 OFFSET 2;
总结
回到顶部
国产数据库近几年在国内的使用率逐步提高,以后有机会接触感觉有意思也会来写博文,希望国产越来越好吧!