三种数据库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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pypy 打包_手机按键精灵脚本编写

    pypy 打包_手机按键精灵脚本编写我们可以在ArcGIS之外调用arcpy站点包运行python独立脚本,从而批量化任务提高工作效率。如果可以把做好的脚本打包成exe是不是就更方便了呢?想想一键式处理也挺开心的。Python打包的问题最早是在ArcGIS知乎中看到的,有人提问为何打包失败,我还有幸被邀请回答,虽然在这一块我也是小白一枚。后来,得空时也搜了下相关的资源,虽然大部分人持悲观态度说arcpy不支持打包,但刚好有个帖

    2022年9月10日
    0
  • QCustomPlot的基本使用[通俗易懂]

    QCustomPlot的基本使用[通俗易懂]QCustomPlot是QT下一个方便易用的绘图工具,只有两个文件qcustomplot.h和qcustomplot.cpp组成。源文件和使用文档可从官方网站下载。官方网站:http://www.qcustomplot.com/下面介绍下基本使用:1、将qcustomplot.cpp和qcustomplot.h拷贝到工程目录下,并在工程中添加文件。并在工程的pro文

    2022年9月25日
    0
  • Perl 正则表达式小结

    Perl 正则表达式小结Perl正则表达式小结1.m定界符“/****/”斜杠为默认定界符,若更改“/”,则须m定界符说明,m{****}2.g全局匹配3.i大小写不敏感4.s用于替换操作5.e求表达式值6.\d 匹配单个数字7.\D匹配非数字字符

    2022年5月25日
    34
  • clion2021.03激活码破解方法「建议收藏」

    clion2021.03激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    1.2K
  • pycharm激活码2021年csdn[在线序列号]

    pycharm激活码2021年csdn[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    46
  • 牛逼!Java 从入门到精通,超全汇总版

    牛逼!Java 从入门到精通,超全汇总版文章目录Java基础HeadFirstJavaJava核心技术卷一Java编程思想设计模式HeadFirst设计模式图解设计模式设计模式重学Java设计模式Java进阶Java并发编程实战Java并发编程艺术Java并发编程之美图解Java多线程设计模式JVM深入理解Java虚拟机Java虚拟机规范HotSpot实战自己动手写Java虚拟机MySQLMySQL基础教程SQL基础教程深入浅出MySQLMySQL必知必会SQL必知必会高性能MySQLMySQL

    2022年6月14日
    19

发表回复

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

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