三种数据库的分页

本文深入探讨了SQL Server、MySQL和Oracle在实现分页查询时的策略和区别,通过具体示例展示了如何利用各数据库的特性进行高效分页查询,并对比了它们在操作过程和性能方面的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL Server

在分页查询上,我感觉SQL Server比较费劲,没有一个专门的分页的语句,靠的是一种巧妙的方法实现分页查询:

原始数据:

idcityusername
1北京小黄
3广州小明
4深圳小李
5纽约jack
6华盛顿tom
7伦敦Lela
查询语句:

select * from t_user
查询出来所有的结果

select * from (select top 2 * from (select top 6 * from t_user order by id asc ) as aaa order by id desc) as bbb order by id asc
上面分页查询表示的是从第(6-2)=4条数据开始到第6条数据结束这段结果集。
查出来的结果是id为6,7的数据


MySQL

 MySQL有个专门针对查询出一段数据的语句limit,使用起来非常的方便。

select * from t_user limit 2,3

上面查询中的2代表从第2条数据之后开始,注意是第2条数据之后,不包含第2条数据。3代表总共查询3条记录。那么limit 2,3代表从第2条(不包含第2条) 数据开始查询出3条记录。
结果是id为4,5,6的数据

Oracle

Oracle中有个rownum,其含义更加明显,就是第几行的意思,这样我们就可以通过where条件来进行分段查询了。

select * from t_user where rownum>=2 and rownum<=4

注意:oracle上面的语句查不到数据,应该套一层,如下

select * from (select a.*, rownum rn from t_user a where rownum <= 4) where rn >= 2

结果是id为3,4,5的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值