三种数据库sql分页查询

三种数据库sql分页查询关于sql分页今天用到分页了顺便就总结了一下mysql数据库:mysql中有分页的关键字limit,它可以实现分页很简单;SELECT*FROMsys_userORDERBYuseridLIMITstartNo,total;startNo是查询开始的行数,total是要查询出多少条;sqlserver2005数据库:sqlser

大家好,又见面了,我是你们的朋友全栈君。

关于sql分页

今天用到分页了顺便就总结了一下

mysql 数据库:

mysql 中有分页的关键字limit,它可以实现分页很简单;
SELECT * FROM sys_user ORDER BY userid LIMIT startNo,total;

startNo 是查询开始的行数,total 是要查询出多少条;


sql server2005 数据库:
sql server 实现分页有两种方式可以实现;
一:利用 top 和 row_number() over(order by…)函数实现
  TOP 子句用于规定要返回的记录的数目  ,row_number()相当于伪列!
  select top total * from 
(select *,row_number() over(order by pid) rownum from person_base )x where x.rownum>startNo
startNo 是查询开始的行数,total 是要查询出多少条;
需要注意的是 row_number()函数后边必须有一个排序over(order by pid)
二:利用top 和 not in 实现
select top total * from person_base where pid not in
( select top startNo pid from person_base order by pid)
order by pid

根据别人测试的数据显示第二种方法比第一种方法效率要高


Oracle 数据库:
Oracle 实现分页需要用到伪列rownum
select * from (select *,rownum rno from person_base where rownum < = (pageNo * pageSize)) x where rno > ((pageNo – 1) * pageSize);
pageNo 是第几页  pageSize 是每页显示的个数

在Oracle中即有 rownum 又有row_number 但是两者是有区别的
1.rownum的特性(没有1就不会有2,没有3……以此类推下去)决定的 rownum只能从1开始
2.使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而函数row_number()在包含排序从句后是先排序再计算行号码。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153272.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PyCharm激活码永久有效PyCharm2019.2.5激活码教程-持续更新,一步到位

    PyCharm激活码永久有效PyCharm2019.2.5激活码教程-持续更新,一步到位PyCharm激活码永久有效2019.2.5激活码教程-Windows版永久激活-持续更新,Idea激活码2019.2.5成功激活

    2022年6月19日
    27
  • 对于WIFI版ipad(无GPS芯片)定位功能的释疑

    对于WIFI版ipad(无GPS芯片)定位功能的释疑

    2021年8月27日
    53
  • plsqldev使用指南

    plsqldev使用指南1,登录后默认自动选中MyObjects 默认情况下,PLSQLDeveloper登录后,Brower里会选择Allobjects,如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,而选择MyObjects后响应速率则是以毫秒计算的。 Tools菜单–&gt;ObjectBrowerFilters,会打开BrowerFolders的定单窗口,…

    2022年5月9日
    43
  • webservice框架jersey简单总结[通俗易懂]

    webservice框架jersey简单总结[通俗易懂]项目中需要使用到webservice,具体的是使用jersey。那么首先需要了解jersey和webservice的关系,捋顺webservice框架的各种实现,通过查阅相关博客,我个人总结webservice的结构图如下:通过上图,大概可以了解到webservice和jersey的关系了,然后我们需要了解RESTful是什么,自己也是说不太清楚,所以可以看这个博客地址:RES

    2022年9月21日
    4
  • Android桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果

    Android桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果大家好,今天给大家带来一个仿360手机卫士悬浮窗效果的教程,在开始之前请允许我说几句不相干的废话。不知不觉我发现自己接触Android已有近三个年头了,期间各种的成长少不了各位高手的帮助,总是有很多高手喜欢把自己的经验写在网上,供大家来学习,我也是从中受惠了很多,在此我深表感谢。可是我发现我却从来没有将自己平时的一些心得拿出来与大家分享,共同学习,太没有奉献精神了。于是我痛定思痛,决定从今天开始写博客,希望可以指点在我后面的开发者,更快地进入Android开发者的行列当中。好了,废话就说这么多,下面开始

    2022年5月8日
    61
  • 在c语言里0和1表示什么_’0’是什么意思c语言

    在c语言里0和1表示什么_’0’是什么意思c语言C语言中常见~Number,怎么计算?计算一个数字的~number比如说现在有A=60那么A的8位二进制数就是00111100那首先要计算~A即~60,那么先取反即11000011。因为负数的补码是取反+1。所以此处逆向操作需要-1取反即11000011-1==11000010(第一步逆向操作)11000010=>取反=>00111101=>十进制的61最后结果A==60,~A=-61C

    2022年9月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号