OracleOracle、MySql、SQLServer 数据分页查询

       (一)、** mysql的分页查询**

Oracle 1

/*

* sql:可以是单表的查询语句,也可以是多表的联合查询语句

* firstIndex:其实的索引

* pageSize:每页显示的记录数

*/

select o.* from (sql) o limit firstIndex,pageSize

Oracle 2

    
不过,相对于ROWNUM,row_number()方式或然由此简化能够少一层嵌套,但是貌似对于大数额的询问,功用也高不到哪里去…..但是,对于大数量如若为表建立索引再结合row_number()效果会很好(未测试)

                                                   
查询(22-41)这20条记录*****(没有ID=6的记录,所以开首询问到的ID为22,以及最大ID为41)

                                                
 查询(1-20)这20条记录
Oracle 3

    ①ROWNUM查询分页通式:

    ②row_number()解析函数分页查询通式:

Oracle 4

  (三)、oracle分页查询

                                             查询(21-40)这20条记录

如上面包车型客车截图,每页突显的记录数为20:

Oracle、MySql、SQLServer
数据分页查询

Oracle 5

Oracle 6

                                                        
查询(21-40)这20条记录

Oracle 7

Oracle 8

摘自:http://www.cnblogs.com/wangyong/p/3396333.html

/*

* 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;

近简单的对oracle,mysql,sqlserver二〇〇五的数据分页查询作了商讨,把个别的询问的语句贴出来供大家学习…..

        mysql的分页查询是最简便易行的,借助关键字limit即可兑现查询,查询语句通式:

Oracle 9

Oracle 10

Oracle 11

      对于oracle的分页查询,特地选出那二种达成形式是因为那四头各有千秋

                                                          查询(1-21)这20条记录*****(没有ID=6的记录,所以查询到的最大ID为21)
Oracle 12

   
接下来重点说说oracle的分页查询,oracle的分页查询办法绝对来说要多点,ROWNUM、row_number(),前日首要将三种功效稍好的分页查询语句。

  (二)、sqlserver2007的分页查询

     首先, 大家领略在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<(四千) order by id
asc,那样一开端会选出四千条记下,功能自然会慢很多….

 以下截图是采纳row_number()形式的分页查询功效:

    知道了sqlserver中的row_number函数,分页也就不难了…..

   
在sqlserver二〇〇七从前向来依靠top关键字来兑现分页查询,不过功用低,在sqlserver二〇〇七及其之后的版本都利用row_number()解析函数来完元素页查询,效用有了十分的大的增强,然而sql语句比较复杂,上面给出分页查询的通式:

        mysql的分页查询就那样简单……

 /*

 * 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

                                                    
  查询(22-41)这20条记录*****(没有ID=6的笔录,所以开头询问到的ID为22,以及最大ID为41)

以下截图是以那种格局开始展览的查询语句:

                                                           
 查询(1-20)这20条记录

 

                                                         
查询(1-21)这20条记录*****(没有ID=6的记录,所以查询到的最大ID为21)
Oracle 13

Oracle 14

Oracle 15

/*

* firstIndex:起始索引

* pageSize:每页显示的数量

* sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句

*/
select * from(select a.*,ROWNUM rn from(sql) a where ROWNUM<=(firstIndex+pageSize)) where rn>firstIndex

Oracle 16

 上边看截图,每页展现20条记录数:

相关文章