数据库实现分页查询显示

本文总结了Mysql、Oracle和MSSQL三种数据库在实现分页查询时的不同方法,包括使用Limit、Rownum和Top等关键字进行查询,并通过实例详细解释了如何在MSSQL中实现从N到M区间的数据获取。

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

现在一般用的比较多的数据库,应该是Oracle,MSSQL(T sql),mysql,但是他们并没有统一的标准来实现分页查询,也就是没有统一的SQL标准,所以他们三个方法各不同给编码人员造成了很大的不便。先总结一下,与大家共享!
Mysql 是最简单的,就是使用Limit进行查询。例如:select * from tmp_table limit 10,20;也就是从tmp_table表中查找(10,20)之间的元组。
Oracle 也基本上实现了这种方法,但是形式却有所不同。例如:select * from tmp_table where rownum>=10 and rownum<=20;也就是从tmp_table表中查找(10,20)之间的元组。
MSSQL(T SQL)只有TOP,也就是取出一个表中的头部的N条元组,但是没有直接可以取出N到M之间的数据的方法,所以这里要自己开发。例如上面是实现了每页10个数据,然后取出(10,20)之间的数据(也就是第二页),MSSQL这么实现:
select * from 
     select top 10 * from
     
         select top 20 * from tmp_table order by id
     ) order by id DESC
)order by id ASC;
其实这里原理应该是比较简单的,因为我们要取出(10,20)之间的元组,先取出前20条,然后降序取出前10条,然后升序取出全部的,也就实现了升序取出(10,20)元组了。
显然,这也是因为SQL的标准并不是很严格的缘故吧,所以很多的数据库的实现方式都不同,但是经过我们对SQL标准的学习,我们应该是可以总结出相同的方法的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值