• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >数据库其它 > 数据库分页查询语句数据库查询

数据库分页查询语句数据库查询

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了数据库分页查询语句,数据库分页语句,oracle数据库分页语句,mysql数据库分页语句,数据库查询语句等相关知识,希望本文的分享对您有所帮助

先看看单条 SQL 语句的分页 SQL 吧。

方法1:

适用于 SQL Server 2000/2005

SELECT TOP 页大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ) ORDER BY id

</div>

方法2:

适用于 SQL Server 2000/2005

SELECT TOP 页大小 * FROM table1 WHERE id > ( SELECT ISNULL(MAX(id),0) FROM ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ) A ) ORDER BY id
</div>

方法3:

适用于 SQL Server 2005

SELECT TOP 页大小 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1 ) A WHERE RowNumber > 页大小*(页数-1)
</div>

说明,页大小:每页的行数;页数:第几页。使用时,请把“页大小”以及“页大小*(页数-1)”替换成数码。

MYSQL

SELECT * FROM TT LIMIT 1,20
SELECT * FROM TT LIMIT 21,30
/*
如果你是几千上万数据,就直接使用mysql自带的函数 limit的普通用法就ok了,如果是100万以上的数据,可能就要讲方法了,下面我们来做个百万级数据的分页查询语句.
mysql> select * from news where id>=(select id from news limit 490000,1) limit 10; //0.18 sec //很 明显,这 种方式胜出 .
mysql> select * from news limit 490000,10 //0.22 sec;
*/

</div>

以下的文章主要介绍的是MySQL分页的实际操作方案,其实关于实现MySQL分页的最简单的方法就是利用利用mysql数据库的LIMIT函数,LIMIT [offset,] rows可以从MySQL数据库表中第M条记录开始检索N条记录的语句为:

SELECT * FROM 表名称 LIMIT M,N
例如从表Sys_option(主键为sys_id)中从第10条记录开始检索20条记录,语句如下:

select * from sys_option limit 10,20 
select * from table [查询条件] order by id limit ?,? 

</div>

Oracle

Oracle的分页查询语句基本上可以按照这篇了,下一篇文章会通过例子来申述。下面简单讨论一下多表联合的情况。对最多见的等值表连接查询,CBO 一般可能会采用两种连接方式NESTED LOOP以及HASH JOIN(MERGE JOIN效率比HASH JOIN效率低,一般CBO不会考虑)。在这里,由于使用了分页,因此指定了一个归回的最大记载数,NESTED LOOP在归回记载数跨越最大值时可以顿时遏制并将结果归回给中心层,而HASH JOIN必需处理完所有成集(MERGE JOIN也是)。那么在大部分的情况下,对分页查询选择NESTED LOOP作为查询的连接方法具有较高的效率(分页查询的时候绝大部分的情况是查询前几页的数据,越靠后面的页数访问概率越小)。

因此,如果不介意在体系中使用HINT的话,可以将分页的查询语句改写为:

SELECT /*+ FIRST_ROWS */ * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21

</div>

作者“ERDP技术架构”

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 数据库分页查询语句数据库查询
  • 数据库分页查询方法

相关文章

  • 2017-05-11大数据量,海量数据处理方法总结
  • 2017-05-11数据库测试 实用技巧及测试方法
  • 2017-05-11多种获取远程连接access数据库的方法
  • 2017-05-11Sql Server、Access数据排名的实现方法(例如:成绩排名)
  • 2017-05-11OLEDB和ODBC的区别(优缺点)
  • 2017-05-11识别 MS SQL 各个版本的版本号的方法
  • 2017-05-11利用带关联子查询Update语句更新数据的方法
  • 2017-05-11MSSQL转MYSQL的一些记录
  • 2017-05-11分享三种高效率SQL语句分页方法
  • 2017-05-11数据库设计的折衷方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 数据库的三级模式和两级映射介绍
    • 比较SQL Server与Oracle、DB2数据库的一些知识
    • SequoiaDB巨杉数据库领跑性能测试,性能超越MongoDB、Cassandra
    • Access转SqlServer的注意事项
    • MSSQL自动同步设置方法
    • 使用SQL Mail收发和自动处理邮件中的扩展存储过程简介
    • sql语句中where和having的区别
    • 利用reverse索引优化like语句的方法详解
    • MDAC2.8 安装问题与解决方法
    • 使用Bucardo5实现PostgreSQL的主数据库复制

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有