(一)、** 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 数据库分页查询语句相关推荐

  1. 使用oracle数据库分页查询语句,各种数据库的分页查询语句

    各种数据库的分页查询语句 1.oracle数据库分页select * from (select a.*,rownum rc from 表名 where rownum=endrow) a where a ...

  2. Sqlserver 数据库分页查询(三种方式)

    --第一种分页:sqlserver 2000-sqlserver2005 --假设:每页显示5条, 当前页:1  则查询1-5 --不等于前5条的前5条 select top 5 * from  St ...

  3. python mongodb分页查询_python数据库分页查询语句

    用django将数据从数据库提出并分页展示 不要笑这个太简单噢~~大神们路过的请自动忽略本文-- '''django有自带的分页功能,我这个是自己做的分页,效果其实是一样的. ''' 要把数据提出并展 ...

  4. mysql多表分页查询语句_Mysql多表分页查询

    多张表,字段完全相同,表名称不同,每三个月的数据插入到一张表中.当查询历史的时候,把所有表中的数据展示出来并做分页处理. sql语句的写法: select * from ${fristName} wh ...

  5. mysql 分页查询web_JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)...

    JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)-1.jpg (40.23 KB, 下载次数: 0) 2018-8-18 13:34 上传 在开发过程中,经常做的一件事,也是最基本的事 ...

  6. oracle mssql 实例,oracle,mysql,SqlServer三种数据库的分页查询的实例

    MySql: MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了. LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数, ...

  7. infomixdb mysql_不同数据库oracle mysql SQL Server DB2 infomix sybase分页查询语句

    在不同数据库中的使用的分页查询语句: 当前页:currentpage 页大小:pagesize 1. Oracle数据库 select * from (select A.*,rownum rn fro ...

  8. oracle 与mysql查询_oracle与mysql分页查询语句sql

    如果我们是通过JDBC的方式访问数据库,那么就有必要根据数据库类型采取不同的SQL分页语句,对于MySql数据库,我们可以采用limit语句进行分页,对于Oracle数据库,我们可以采用rownum的 ...

  9. SQLServer中常用的分页查询语句

    前言 在SqlServer中,分页查询是经常用到的查询语句,一个好的分页查询语句,不仅能将代码省略,还能提高运行效率,下面我们来探讨一下SQLServer中的分页查询语句. 具体的业务逻辑是这样的,我 ...

最新文章

  1. tinyxml 读取文本节点_【C++】【TinyXml】xml文件的读写功能使用——写xml文件
  2. 解决Mask RCNN自己航拍数据集训练的问题
  3. 【Ant Design Pro 一】 环境搭建,创建一个demo
  4. 响应式网站建设优势有哪些?
  5. Opportunity的chance of success的赋值逻辑
  6. 伺服系统控制网络的重要性! 现场总线的重要性! SSCNET运动控制系统与发展趋势
  7. [zz]WCF分布式开发步步为赢(0):WCF学习经验分享,如何更好地学习WCF?
  8. 关于页面文件路径的问题
  9. android 数据文件存储,实例详解Android文件存储数据方式
  10. 昨天申请了这个blog,也就是半个多小时之前,eh,这是我的第几个blog了?
  11. 家用简单电线路图_6种简单电路图
  12. echarts数据可视化系列:柱状图
  13. 侍魂胧月传说服务器维护,侍魂胧月传说4月17日更新维护公告一览
  14. Kruskal算法求最小生成树
  15. boost中regex使用时出现的问题
  16. 基于python的气象数据分析统计服_基于Python的风向风速数据分析的设计与实现
  17. oracle的账户无法注册表,oracle用户账号在哪注册表ORA-12514问题解决
  18. ACM-ICPC 2018 青岛赛区网络预赛 B. Red Black Tree (LCA、二分)
  19. (推荐最新)Linux系统与VM虚拟机下载地址
  20. 2Sums3Sums

热门文章

  1. 问题四十八:怎么用ray tracing画superhyperboloid(超级双曲面)
  2. 计算机没考好的检讨书300百以上,考试没考好的万能检讨书300字(精选5篇)
  3. iofactory.php,CI框架下引入类库资源PHPPowerPoint报出“ Cannot redeclare class IOFactory”...
  4. 《人工智能及其应用》1-6章
  5. Vmware 虚拟机远程连接失败解决办法
  6. 有3个国家名,要求找出按字母排序排在最前面的国家,要求用函数调用
  7. 大数据预测分析是否对企业有影响
  8. 大数据平台安全问题有哪些
  9. 物联网卡如何帮助农民提高收益
  10. 今日头条php面试经验,「今日头条」前端面试题和思路解析