项目一直都用的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语句
分享到:
相关推荐
这里只是总结了MySQL,SQL Server,Oracle分页语句。供大家参考
几条常见的数据库分页SQL 语句,针对oracle,sqlserver,mysql三种常见数据库的分页显示。
最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习….. (一)、mysql的分页查询 mysql的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式: ...
SQL Server 、MySQL 、Oracle数据库分页SQL语句
3大数据库(Sql-Server,MySql和Oracle)的分页SQL语句实现
看过此博文后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三种数据库分页查询语句的区别介绍 的相关资料,需要的朋友可以参考下
公司在项目开发中使用的分页查询语句,分别有针对SqlServer,Mysql,Orcle与PostgreSQL的查询语句
介绍就不多说了,下边是部分目录,觉得有用的话就顶一个 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整...
一般只需要直接写到sql语句后面就行了。LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第...
几种数据库常见分页sql 我们在编写MIS系统和Web应用程序等系统时,都涉及到与数据库...根据自己使用过的内容,把常见数据库SQL Server,Oracle和MySQL的分页语句,从数据库表中的第M条数据开始取N条记录的语句总结如下:
该文档详细描述了三大数据库的分页sql语句。
主要介绍了java连接oracle、sqlserver和mysql语句,以及连接这些数据库的分页语句
2、支持SQLSERVER、MySql、ACCESS. 3、可选择简单三层架构和工厂模式三层架构 4、可选择不生成缓存代码、“缓存对象”、“聚合缓存依赖”及“缓存对象+聚合缓存依赖” 5、可选择要生成的层 6、可生成用户控件及后台...
与Oracle和MS SqlServer相比,mysql的分页方法简单的让人想哭。 –语法: SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset –举例: select * from table limit 5; --返回前5行 select * from ...
根据自己使用过的内容,把常见数据库Sql Server,Oracle和MySQL的分页语句,从数据库表中的第M条数据开始取N条记录的语句总结如下: SQL Server 从数据库表中的第M条记录开始取N条记录,利用Top关键字:注意如果...
经典SQL语句大全 下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制...
超级强悍的java web通用分页组件,只要简单的一条sql语句就可以轻松的实现分页,目前对oracle,SQL Server2005,SQL server200,mysql都做了实现,程序通过接口来封装,你可以实现对其他数据库的分页。里面有调用例子...
支持Access,SqlServer,MySql,Oracle,SQLite,Sybase,DB2,PostgreSql连接 全模板化的代码生成器,轻松修改即可实现自定义各种编程语言模板、支持代码批量输出 内置一套强大的C#三层架构模板,此模板支持生成简单三层及...