Oracle、MySql、SQLServer 数据库分页查询语句
(一)、** mysql的分页查询**
mysql的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式:
/*
* sql:可以是单表的查询语句,也可以是多表的联合查询语句* firstIndex:其实的索引* pageSize:每页显示的记录数*/select o.* from (sql) o limit firstIndex,pageSize
如下面的截图,每页显示的记录数为20:
#这个20是这样求的(查询的第几页-1)*每页记录数=(3-1)*10=20
查询(1-20)这20条记录
查询(21-40)这20条记录
mysql的分页查询就这么简单…
(二)、sqlserver2005的分页查询
在sqlserver2005之前一直借助top关键字来实现分页查询,不过效率低,在sqlserver2005及其之后的版本都使用row_number()解析函数来完成分页查询,效率有了很大的提高,不过sql语句比较复杂,下面给出分页查询的通式:
/** firstIndex:起始索引* pageSize:每页显示的数量* orderColumn:排序的字段名* sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句*/select top pageSize o.* from (select row_number() over(order by orderColumn) as rownumber,* from(sql) as o where rownumber>firstIndex;
下面看截图,每页显示20条记录数:
查询(1-20)这20条记录
查询(21-40)这20条记录
知道了sqlserver中的row_number函数,分页也就简单了…
** (三)、oracle分页查询**
接下来重点说说oracle的分页查询,oracle的分页查询方法相对来说要多点,ROWNUM、row_number(),今天主要将两种效率稍好的分页查询语句。
①ROWNUM查询分页通式:
/** firstIndex:起始索引* pageSize:每页显示的数量* sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句*/
select * from(select a.*,ROWNUM rn from(sql) a where ROWNUM<=(firstIndex+pageSize)) where rn>firstIndex
以下截图是以这种方式进行的查询语句:
查询(1-21)这20条记录*****(没有ID=6的记录,所以查询到的最大ID为21)
查询(22-41)这20条记录*****(没有ID=6的记录,所以开始查询到的ID为22,以及最大ID为41)
②row_number()解析函数分页查询通式:
/** firstIndex:起始索引* pageSize:每页显示的数量* orderColumn:排序的字段名* sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句*/
select * from(select * from(select t.*,row_number() over(order by orderColumn) as rownumber from(sql) t) p where p.rownumber>firstIndex) where rownum<=pageSize
以下截图是使用row_number()方式的分页查询效果:
查询(1-21)这20条记录*****(没有ID=6的记录,所以查询到的最大ID为21)
查询(22-41)这20条记录*****(没有ID=6的记录,所以开始查询到的ID为22,以及最大ID为41)
对于oracle的分页查询,特地选出这两种实现方式是因为这两者各有千秋
首先, 我们知道在ROWNUM查询的方式中,在第二层的sql语句中有个"where ROWNUM<firstIndex+pageSize",根据oracle的原则,第二层查询语句会嵌入到最内层中进行查询,也就是说,最开始执行的查询语句类似于:select * from wyuse where rownum<(firstIndex+pageSize) order by id asc,从数据表中查询出(firstIndex+pageSize)条记录,所以如果这个值很小的话,效率会很好,如果对于大数据量的表单,这个值如果是上千,比如:select * from wyuse where rownum<(5000) order by id asc,这样一开始会选出5000条记录,效率自然会慢很多…
不过,相对于ROWNUM,row_number()方式可能通过简化可以少一层嵌套,不过貌似对于大数量的查询,效率也高不到哪里去…不过,对于大数量如果为表建立索引再结合row_number()效果会很好(未测试)
Oracle、MySql、SQLServer 数据库分页查询语句相关推荐
- 使用oracle数据库分页查询语句,各种数据库的分页查询语句
各种数据库的分页查询语句 1.oracle数据库分页select * from (select a.*,rownum rc from 表名 where rownum=endrow) a where a ...
- Sqlserver 数据库分页查询(三种方式)
--第一种分页:sqlserver 2000-sqlserver2005 --假设:每页显示5条, 当前页:1 则查询1-5 --不等于前5条的前5条 select top 5 * from St ...
- python mongodb分页查询_python数据库分页查询语句
用django将数据从数据库提出并分页展示 不要笑这个太简单噢~~大神们路过的请自动忽略本文-- '''django有自带的分页功能,我这个是自己做的分页,效果其实是一样的. ''' 要把数据提出并展 ...
- mysql多表分页查询语句_Mysql多表分页查询
多张表,字段完全相同,表名称不同,每三个月的数据插入到一张表中.当查询历史的时候,把所有表中的数据展示出来并做分页处理. sql语句的写法: select * from ${fristName} wh ...
- mysql 分页查询web_JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)...
JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)-1.jpg (40.23 KB, 下载次数: 0) 2018-8-18 13:34 上传 在开发过程中,经常做的一件事,也是最基本的事 ...
- oracle mssql 实例,oracle,mysql,SqlServer三种数据库的分页查询的实例
MySql: MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了. LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数, ...
- infomixdb mysql_不同数据库oracle mysql SQL Server DB2 infomix sybase分页查询语句
在不同数据库中的使用的分页查询语句: 当前页:currentpage 页大小:pagesize 1. Oracle数据库 select * from (select A.*,rownum rn fro ...
- oracle 与mysql查询_oracle与mysql分页查询语句sql
如果我们是通过JDBC的方式访问数据库,那么就有必要根据数据库类型采取不同的SQL分页语句,对于MySql数据库,我们可以采用limit语句进行分页,对于Oracle数据库,我们可以采用rownum的 ...
- SQLServer中常用的分页查询语句
前言 在SqlServer中,分页查询是经常用到的查询语句,一个好的分页查询语句,不仅能将代码省略,还能提高运行效率,下面我们来探讨一下SQLServer中的分页查询语句. 具体的业务逻辑是这样的,我 ...
最新文章
- tinyxml 读取文本节点_【C++】【TinyXml】xml文件的读写功能使用——写xml文件
- 解决Mask RCNN自己航拍数据集训练的问题
- 【Ant Design Pro 一】 环境搭建,创建一个demo
- 响应式网站建设优势有哪些?
- Opportunity的chance of success的赋值逻辑
- 伺服系统控制网络的重要性! 现场总线的重要性! SSCNET运动控制系统与发展趋势
- [zz]WCF分布式开发步步为赢(0):WCF学习经验分享,如何更好地学习WCF?
- 关于页面文件路径的问题
- android 数据文件存储,实例详解Android文件存储数据方式
- 昨天申请了这个blog,也就是半个多小时之前,eh,这是我的第几个blog了?
- 家用简单电线路图_6种简单电路图
- echarts数据可视化系列:柱状图
- 侍魂胧月传说服务器维护,侍魂胧月传说4月17日更新维护公告一览
- Kruskal算法求最小生成树
- boost中regex使用时出现的问题
- 基于python的气象数据分析统计服_基于Python的风向风速数据分析的设计与实现
- oracle的账户无法注册表,oracle用户账号在哪注册表ORA-12514问题解决
- ACM-ICPC 2018 青岛赛区网络预赛 B. Red Black Tree (LCA、二分)
- (推荐最新)Linux系统与VM虚拟机下载地址
- 2Sums3Sums
热门文章
- 问题四十八:怎么用ray tracing画superhyperboloid(超级双曲面)
- 计算机没考好的检讨书300百以上,考试没考好的万能检讨书300字(精选5篇)
- iofactory.php,CI框架下引入类库资源PHPPowerPoint报出“ Cannot redeclare class IOFactory”...
- 《人工智能及其应用》1-6章
- Vmware 虚拟机远程连接失败解决办法
- 有3个国家名,要求找出按字母排序排在最前面的国家,要求用函数调用
- 大数据预测分析是否对企业有影响
- 大数据平台安全问题有哪些
- 物联网卡如何帮助农民提高收益
- 今日头条php面试经验,「今日头条」前端面试题和思路解析