`

【转】Oracle、DB2、SQLSERVER、Mysql、Access分页SQL语句梳理

阅读更多
http://www.blogjava.net/fanyingjie/archive/2010/09/28/333108.html

Oracle、DB2、SQLSERVER、Mysql、Access分页SQL语句梳理
最近把平时在项目中常用到的数据库分页sql总结了下。大家可以贴出分页更高效的sql语句。
sqlserver分页 第一种分页方法
需用到的参数:
pageSize 每页显示多少条数据
pageNumber 页数 从客户端传来
totalRecouds 表中的总记录数 select count (*) from 表名
totalPages 总页数
totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1
pages 计算前pages 条数据
pages= pageSize*(pageNumber-1)
SQL语句:
select top pageSize * from 表名 where id  not in (select top pages id from 表名 order by id) order by id
第二种分页方法
pageSize 每页显示多少条数据
pageNumber 页数 从客户端传来
pages=pageSize*(pageNumber-1)+1
select top pageSize * from 表名 where id>=(select max(id) from (select top pages id from 表名 order by id asc ) t )

mysql分页 需用到的参数:
pageSize 每页显示多少条数据
pageNumber 页数 从客户端传来
totalRecouds 表中的总记录数 select count (*) from 表名
totalPages 总页数
totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1
pages 起始位置
pages= pageSize*(pageNumber-1)
SQL语句:
select * from 表名 limit pages, pageSize;
mysql 分页依赖于关键字 limit 它需两个参数:起始位置和pageSize
起始位置=页大小*(页数-1)
起始位置=pageSize*(pageNumber -1)

oracle分页 pageSize 每页显示多少条数据
pageNumber 页数 从客户端传来
totalRecouds 表中的总记录数 select count (*) from 表名
totalPages 总页数
totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1
startPage 起始位置
startPage= pageSize*(pageNumber-1)+1
endPage=startPage+pageSize
SQL语句
select a.* from
(
   select rownum num ,t.* from  表名 t where 某列=某值 order by id asc
)a
where a.num>=startPage and a.num<endPage

db2分页
int startPage=1  //起始页
int endPage;     //终止页
int pageSize=5;  //页大小
int pageNumber=1 //请求页

startPage=(pageNumber-1)*pageSize+1
endPage=(startPage+pageSize);


SQL语句
select * from (select 字段1,字段2,字段3,字段4,字段5,rownumber() over(order by 排序字段 asc ) as rowid  from 表名 )as a where a.rowid >= startPage AND a.rowid <endPage

access分页 pageSize 每页显示多少条数据
pageNumber 页数 从客户端传来
pages=pageSize*(pageNumber-1)+1
SQL语句
select top pageSize * from 表名 where id>=(select max(id) from (select top pages id from 表名 order by id asc ) t )

分享到:
评论

相关推荐

    数据库分页查询整理(oracle、mysql、SqlServer、access、db2等)

    不同的数据库管理系统(DBMS)有不同的分页查询语句,下面对 Oracle、DB2、SQL Server、MySQL、Access 等数据库的分页查询语句进行了整理。 SQL Server 分页查询 SQL Server 中有两种分页查询方法: 1. 第一种...

    SocanCode7.4.1

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

    Oracle学习文档

    Oracle的体系结构包括SQL语句,分为查询语言(DQL)、数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)和事务控制语言(TCL)。比如,DML中的增删改操作,DQL的分组查询、子查询和表连接,以及DCL的...

    oracle 韩顺平笔记 传智播客

    1. **数据库分类与选择**:数据库根据负载量、成本和安全需求分为小型(如Access、Foxbase)、中型(如MySQL、SQL Server、Informix)和大型(如Sybase、Oracle、DB2)。选择数据库需考虑项目的用户规模、预算和安全...

    SQL廖雪峰基础知识整理.docx

    主流的关系数据库分为商用数据库(如Oracle、SQL Server、DB2)、开源数据库(如MySQL、PostgreSQL)、桌面数据库(如Microsoft Access)和嵌入式数据库(如Sqlite)。 2. SQL语言能力: - DDL:创建、删除和修改...

    SocanCode7.4.2

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

    FluentData微型ORM v2.3.0源码2012813

    使用SQL语句选择,插入,更新和删除数据。 支持存储过程。 支持分页。 查询自动映射或自定义映射到自己的实体类型(如产品类型)或动态类型(NET 4.0新)。 安全,使用索引或命名参数,以防止SQL注入。 强大的性能。...

    第05章_排序与分页1

    - SQL Server和Access使用`TOP`。 - DB2使用`FETCH FIRST`。 - Oracle基于`ROWNUM`进行行数统计。 例如,在Oracle中,为了获取前5条按`hp_max`降序排列的记录,需要使用子查询和`ROWNUM`,因为直接使用`FETCH ...

    第05章_排序与分页3

    如果是SQL Server和Access,需要使用TOP关键字,比如: SELECT TOP 5 name, hp_max FROM heros ORDER BY hp_max DESC 如果是DB2,使用FETCH FIRST 5 ROWS ONLY这种关键字: SELECT name, hp_max FROM heros ORDER...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     数据查询语言 (Data Query Language, DQL) 是SQL语言中,负责进行数据查询而不会对数据本身进行修改的语句,这是最基本的SQL语句。例如:SELECT(查询)  数据控制语言Data Controlling Language(DCL),用来...

    运用JAVA进行数据库应用开发培训

    常见的数据库产品有Oracle、SQL Server、DB2、Sybase、Informix、MySQL、hsqldb、InterBase等,以及更贴近个人用户级别的Foxpro、Access和Excel。 数据库对象是数据库中的基本元素,如表(table)、字段(column)...

    JDBC连接各种数据库的代码

    ### JDBC连接各种数据库的知识点...此外,还需要注意的是,在实际应用中,为了提高性能和安全性,建议使用`PreparedStatement`而不是普通的`Statement`来执行SQL语句,并且在处理大型数据集时合理利用分页查询等技术。

    php网络开发完全手册

    15.3.3 执行SQL语句 242 15.3.4 获得查询结果集中的记录数 243 15.3.5 获得结果集中的某一条记录 244 15.3.6 逐行获取结果集中的每一条 15.3.6 记录 245 15.3.7 结果集的分页 248 15.3.8 用户动态添加记录 249 15.3....

    ASP.NRT应用教程

    ADO.NET是.NET Framework的一部分,它提供了与各种数据库交互的能力,包括但不限于Access、SQL Server、Oracle、MySQL和DB2等。ADO.NET的出现解决了不同数据库系统之间接口不统一的问题,它通过中间层——数据库驱动...

    Interface for Java参考手册

    - **多数据库支持**:兼容多种主流数据库系统,如Oracle、SQL Server、DB2、MySQL、Access等。 #### 五、产品组成 **Interface4j**由四个主要部分组成: 1. **Console控制管理平台**:提供当前运行的Web服务器...

    1000道 互联网Java工程师面试题 485页_PDF密码解除.pdf

    - **支持多种数据库:**MyBatis支持多种数据库,如MySQL、Oracle、DB2等。 - **与Spring集成良好:**MyBatis可以轻松地与Spring框架集成,实现事务管理等功能。 **3. MyBatis框架的缺点:** - **SQL管理分散:**...

Global site tag (gtag.js) - Google Analytics