`
yun342173024
  • 浏览: 72869 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql sqlserver oracel分页sql语句

 
阅读更多
项目一直都用的hibernate,很少对分页查询写sql语句,这次做项目用的mybatis,mybatis的内部分页不是很好,用的是jdbc的游标移动,它是基于内存分页的,所以要自己写sql语句,就总结一下几种主流数据库的分页写法
1. mysql
mysql的分页比较简单,mysql数据库提供了分页处理的关键字 例如表的名称叫 procuct
 select * from product limit 0,10     

limit 后面是两个整数,第一个整数是开始的行号,第二个是要取得数据的记录数,比如上面的sql语句会查询出第一条到第十条记录,它是从开始行号的下一条开始取数据的。
2. sql server
sql server 的分页语句稍微复杂点,假如表中有字段 id 用top实现
 select top pageSize  * from product where id not in (select top (pageNow - 1) * pageSize  id from product  order by id) order by id 

pagesize 就是要取得的记录条数,不过这样的效率不是很高,随着页数的增加速度会慢
sql server 2005 提供了row_number 和over by 函数也可以实现分页
  select * from (select row_number() over by(id)   
 rownum t.* from (select * from product) t where rownum <= pageNow * pageSize)where rownum > (pagenow - 1)* pageSize)

效率还是挺高的 比上面用top效率高,不过只用sql 2005 版本以上的数据库管理系统支持。
2.oracle
oracle是用三层嵌套来实现的 ,一直很纳闷,为什么oracel公司不做的简单的,像   mysql 那样多好,不知道为什么要搞这么复杂,oracel为查询的记录提供了一个虚拟列,叫rownum,就是行号
 select * from (select rownum,   
 t.* from (select * from product) t where rownum <= pageNow * pageSize)where rownum > (pagenow - 1)* pageSize)

挺复杂的,希望oracel也提供像mysql 那样的分页sql语句
分享到:
评论

相关推荐

    oracle mysql SQL server分页

    这里只是总结了MySQL,SQL Server,Oracle分页语句。供大家参考

    几条常见的数据库分页SQL 语句

    几条常见的数据库分页SQL 语句,针对oracle,sqlserver,mysql三种常见数据库的分页显示。

    mysql oracle和sqlserver分页查询实例解析

    最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习….. (一)、mysql的分页查询 mysql的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式: ...

    分页SQL语句

    SQL Server 、MySQL 、Oracle数据库分页SQL语句

    数据库分页SQL语句实现

    3大数据库(Sql-Server,MySql和Oracle)的分页SQL语句实现

    ORACLE、MYSQL、SQLSERVER数据分页查询

    看过此博文后Oracle、MySql、SQLServer 数据分页查询,在根据公司的RegionRes表格做出了  SQLserver的分页查询语句: SELECT DISTINCT TOP 500 rr.ID AS id ,rr.strName AS name ,rr.nType AS res_type ,...

    Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍

    主要介绍了Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍 的相关资料,需要的朋友可以参考下

    Page_SQL(Sqlserver_mysql_oracle_postgre).rar_PAGE_SQL_page

    公司在项目开发中使用的分页查询语句,分别有针对SqlServer,Mysql,Orcle与PostgreSQL的查询语句

    Sqlserver2000经典脚本

    介绍就不多说了,下边是部分目录,觉得有用的话就顶一个 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整...

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

    一般只需要直接写到sql语句后面就行了。LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第...

    几种数据库常见分页sql

    几种数据库常见分页sql 我们在编写MIS系统和Web应用程序等系统时,都涉及到与数据库...根据自己使用过的内容,把常见数据库SQL Server,Oracle和MySQL的分页语句,从数据库表中的第M条数据开始取N条记录的语句总结如下:

    三大数据库的分页语句

    该文档详细描述了三大数据库的分页sql语句。

    java连接数据库的分页语句

    主要介绍了java连接oracle、sqlserver和mysql语句,以及连接这些数据库的分页语句

    超强的C#代码生成工具,支持ACCESS,ORACLE,SQL 最新

    2、支持SQLSERVER、MySql、ACCESS. 3、可选择简单三层架构和工厂模式三层架构 4、可选择不生成缓存代码、“缓存对象”、“聚合缓存依赖”及“缓存对象+聚合缓存依赖” 5、可选择要生成的层 6、可生成用户控件及后台...

    浅谈mysql使用limit分页优化方案的实现

    与Oracle和MS SqlServer相比,mysql的分页方法简单的让人想哭。 –语法: SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset –举例: select * from table limit 5; --返回前5行 select * from ...

    php mssql 数据库分页SQL语句

    根据自己使用过的内容,把常见数据库Sql Server,Oracle和MySQL的分页语句,从数据库表中的第M条数据开始取N条记录的语句总结如下: SQL Server 从数据库表中的第M条记录开始取N条记录,利用Top关键字:注意如果...

    经典全面的SQL语句大全

    经典SQL语句大全 下列语句部分是Mssql语句,不可以在access中使用。  SQL分类:  DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)  DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)  DCL—数据控制...

    java web Pager通用分页组件(源码)

    超级强悍的java web通用分页组件,只要简单的一条sql语句就可以轻松的实现分页,目前对oracle,SQL Server2005,SQL server200,mysql都做了实现,程序通过接口来封装,你可以实现对其他数据库的分页。里面有调用例子...

    SocanCode7.4.1

    支持Access,SqlServer,MySql,Oracle,SQLite,Sybase,DB2,PostgreSql连接 全模板化的代码生成器,轻松修改即可实现自定义各种编程语言模板、支持代码批量输出 内置一套强大的C#三层架构模板,此模板支持生成简单三层及...

Global site tag (gtag.js) - Google Analytics