Oracle、MySql、SQLServer 数据分页查询

    最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习.....

       (一)、 mysql的分页查询

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

如下面的截图,每页显示的记录数为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()效果会很好(未测试)

挚爱py
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 分页
diuboqian9544的博客
01-04 1082
--1:无ORDER BY排序的写法。(效率最高) --(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!) SELECT * FROM (SELECT ROWNUM AS rowno, t.* FROM emp t WHERE hire_date BETWEEN TO_DATE ...
OracleMySqlSQLServer 数据分页查询语句
Camel
01-29 4111
(一)、** mysql分页查询** mysql分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式: /* * sql:可以是单表的查询语句,也可以是多表的联合查询语句 * firstIndex:其实的索引 * pageSize:每页显示的记录数 */ select o.* from (sql) o limit firstIndex,pageSize 如下面的截图,每页...
Oracle实现分页查询的SQL语法汇总
12-15
本文实例汇总了Oracle实现分页查询的SQL语法,整理给大家供大家参考之用,详情如下: 1.无ORDER BY排序的写法。(效率最高) 经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然! sql语句如下: SELECT * FROM (Select ROWNUM AS ROWNO, T.* from k_task T where Flight_date between to_date('20060501', 'yyyymmdd') and to_date('20060731', 'yyyymmdd')
Oracle分页查询
热门推荐
blood_Z的博客
03-16 5万+
Oracle分页查询 方法一 -- 40为pageCurrent * pageSize,31 应为为(pageCurrent - 1) * pageSize SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME WHERE 1 = 1 -- 条件 ORDER BY CREATETIME DESC -- 排序 ) A WHERE ROWNUM <= 40
ORACLE分页查询SQL语句(最有效的分页)
lchmyhua88的博客
11-01 3万+
rownum是Oracle数据库中的一个特有关键字,返回的是一个数字代表记录的行号。这篇文章主要介绍了oracle 使用rownum的二种分页方式,需要的朋友可以参考下 第一种,直接使用起止限定数: SELECT * FROM (SELECT t.*,ROWNUM r FROM TABLE t WHERE ROWNUM <= page*pageSize) WHERE r >= ((page - 1) * pageSize + 1) 第二种:使用BETWEEN: SELECT * ..
mysql,sqlserveroracle分页查询
qq_20617725的专栏
03-04 471
mysql数据库:支持分页查询,但对于大数量表进行查询时,效率很低,分页原理如: limit 10000,20的意思扫描满足条件的10020行,扔掉前面的10000行,返回最后的20行,问题就在这里,如果是limit 100000,100,需要扫描100100行,在一个高并发的应用里,每次查询需要扫描超过10W行,性能肯定大打折扣。limit n性能是没问题的,因为只扫描n行,所以在mysql
ORACLEMYSQLSQLSERVER数据分页查询
12-14
看过此博文后OracleMySqlSQLServer 数据分页查询,在根据公司的RegionRes表格做出了  SQLserver分页查询语句: SELECT DISTINCT TOP 500 rr.ID AS id ,rr.strName AS name ,rr.nType AS res_type ,...
mysql oraclesqlserver分页查询实例解析
09-09
最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴到脚本之家平台供大家参考
SQL Server 在分页获取数据的同时获取到总记录数
01-19
SQL Server 获取数据的总记录数,有两种方式: 1.先分页获取数据,然后再查询一遍数据库获取到总数量 2.使用count(1) over()获取总记录数量 SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY Id DESC) rn, ...
sql 分页 oracle mysql sqlserver
07-25
sql 分页 针对oracle mysql sqlserver数据库的通用类
数据分页查询
weixin_34138255的博客
09-24 713
在这里主要讲解一下MySQLSQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法。可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用总结归纳一下,以方便大家查询使用。下面就分别给大家介绍、讲解一下三种数据库实现分页查询的方法。一、 MySQL 数据分页查询MySQL数据库实现分页比较简单,提供了...
Oracle中的分页查询
m0_71406734的博客
05-11 1万+
Oracle中的分页查询
Oracle SQL实现分页查询
SoftStar的专栏
12-03 5567
Oracle SQL分页查询1、表结构SQL> desc test; 名称 是否为空? 类型 --------------------- -------- --------------- ID NOT NULL NUMBER(8) USERNAME VARCHAR2(32)
oracle是如何分页的,Oracle常见SQL分页实现方案介绍
weixin_31437777的博客
04-03 1453
Oracle中,用SQL来实现分页有很多种实现方式,但有些语句可能并不是很通用,只能用在一些特殊场景之中;以下介绍三种比较通用的实现方案;在以下各种实现中,ROWNUM是一个最核心的关键词,在查询时他是一个虚拟的列,取值为1到记录总数的序号;首先来介绍我们工作中最常使用的一种实现方式:SELECT*FROM(SELECTROW_.*,ROWNUMROWNUM_FROM(SELECT...
MYSQLORACLE的分页
qq_41482600的博客
11-12 2242
mysqloracle递归级联查询
oraclemysql各自的分页查询语句
m0_46786082的博客
04-20 452
1、Oracle分页查询: 使用rownum,两种如下: 第一种: select * from (select t.,rownum row_num from mytable t) b where b.row_num between 1 and 10 第二种: select * from ( select a., rownum rn from mytable a where rownum <...
Oracle)SQL优化技巧(一):分页查询
最新发布
但行好事,莫问前程
04-06 1590
Oracle分页查询的进一步优化探索!✊
oracle分页SQL(深入分析)
伶生的博客
01-15 3987
Oracle常用分页语句如下,但是这种分页写法,会随着查询的范围的扩大,而越来越慢。 有好的方法大家可以提出来交流一下。 select * from ( select row_.*, rownum rn from ( select * from 表名 t where 1=1 order by #{排序字段} ) row_ where rownum <= #{pageEnd} ) where rn>= #{pageStart} 原理分.
MySQLOracleSQLServer的分页语句
05-28
MySQL分页语句: SELECT * FROM table_name LIMIT offset, limit; 其中,offset为偏移量,表示从第几条记录开始查询;limit为每页显示的记录数。 Oracle分页语句: SELECT * FROM (SELECT rownum AS rn, a.* FROM table_name a WHERE rownum <= offset + limit) WHERE rn > offset; 其中,offset为偏移量,表示从第几条记录开始查询;limit为每页显示的记录数。 SQL Server分页语句: SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY column_name) AS rownum, * FROM table_name) AS t WHERE rownum > offset AND rownum <= offset + limit; 其中,offset为偏移量,表示从第几条记录开始查询;limit为每页显示的记录数。注意,SQL Server的分页语句需要使用ROW_NUMBER()函数来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • JSP中三种弹出对话框的用法实例 97192
  • Injection of resource dependencies failed解决办法总结 96785
  • jQuery绑定和解绑点击事件及重复绑定解决办法 22366
  • response跳转页面前弹出alert提示框分析及常见的弹出框使用 22016
  • html中location的用法详解 20833

分类专栏

  • bug
  • jquery

最新评论

  • Win10秘笈:如何禁用更新安装后自动重启?

    猪怎么写: 不行诶

  • 详解@SessionAttributes

    少林寺驻武当山办事处刘大喇嘛: 你这字体看的我眼睛疼表情包

  • Injection of resource dependencies failed解决办法总结

    哆啦A美梦: 我是mapper.xml的某个Model包名后面不小心加了个空格,结果就出了这个问题,我要是不仔细一点,我tm一年都找不出这个bug

  • Injection of resource dependencies failed解决办法总结

    D_alyoo: 我的也是出现调用死循环

  • Injection of resource dependencies failed解决办法总结

    wzy_20141234: 我的错误是多了一个 @Resource 并且没有代码然我注入,哈哈哈给大家参考

大家在看

  • 【Java基础】 多线程
  • 字符串专题详解
  • 网络安全必备!Top 10免费黑客工具_黑客技术 开源工具,不可思议_黑客代理工具有哪些
  • 环境科学SCI期刊,IF=8.5+,期刊发展势头非常好
  • 云计算【第一阶段(15)】文本编辑器vi vim

最新文章

  • Eclipse的界面风格
  • jQuery实现Checkbox全选功能
  • 使用注解来构造IoC容器
2017年96篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司阳江网络营销无锡百度竞价推荐西宁seo公司绥化seo优化哪家好河源网站建设设计公司通化企业网站改版哪家好海北网站优化排名报价廊坊百度网站优化多少钱吉祥seo网站推广公司开封网站优化排名推荐福州英文网站建设价格郴州网站定制公司商丘网站优化按天计费价格南京建设网站公司通辽阿里店铺托管哪家好常州优秀网站设计推荐曲靖百度网站优化报价阳泉阿里店铺托管报价郑州网站优化按天扣费公司中山网络营销多少钱廊坊网站优化软件哪家好伊春网站改版公司白银网站建设价格武威seo哪家好芜湖网站设计模板推荐黔东南网站推广系统价格贺州建网站哪家好大浪百度标王报价安阳网页设计公司济源优秀网站设计价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化