`
狂奔的蜗牛zyx
  • 浏览: 19526 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

常用数据库分页

阅读更多
一、MySQL 数据库 分页查询
MySQL数据库实现分页比较简单,提供了 LIMIT函数。
LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数。

select * from table WHERE … LIMIT 10; #返回前10行
select * from table WHERE … LIMIT 0,10; #返回前10行
select * from table WHERE … LIMIT 10,20; #返回第10-20行数据


二、SQLServer数 据库分页查询
SQLServer数据库又分为 SQLServer2000和SQLServer2005。一般比较简单的方法是通过TOP函数来实现。如下:
SELECT TOP 10 * FROM sql WHERE (
code NOT IN  (SELECT TOP 20 code  FROM TestTable  ORDER BY id))
ORDER BY I

这条语句,从理论上讲,整条语句的执行时间应该比子句的执行时 间长,但事实相反。因为,子句执行后返回的是20条记录,而整条语句仅返回10条语句,所以影响数据库响应时间最大的因素是物理I/O操作。而限制物理I /O操作此处的最有效方法之一就是使用TOP关键词了。TOP关键词是SQL SERVER中经过系统优化过的一个用来提取前几条或前几个百分比数据的词。
以上语句的有一个致命的缺点,就是它含有NOT IN字样,要换成用not exists来代替not in,二者的执行效率实际上是没有区别的。
在以上分页算法中,影响我们查 询速度的关键因素有两点:TOP和NOT IN。TOP可以提高我们的查询速度,而NOT IN会减慢我们的查询速度,所以要提高我们整个分页算法的速度,就要彻底改造NOT IN,同其他方法来替代它。
我们知道,几乎任何字段,我们都可以通过max(字段)或min(字段)来提取某个字段中的最大 或最小值,所以如果这个字段不重复,那么就可以利用这些不重复的字段的max或min作为分水岭,使其成为分页算法中分开每页的参照物。在这里,我们可以 用操作符“>”或“<”号来完成这个使命。如:

Select top 10 * from table1 where id>200

于是就有了如下分页方案:
select top 页大小 *from table1
where id>(select max (id) from
(select top ((页码-1)*页大小) id from table1 order by id) as T) order by id

使用TOP要求主键必须唯一,不能是联合主键。如果是联合主键,则查询出的结果会乱序的。
目前SQLServer2005提供了一个row_number()函数。ROW_NUMBER() 就是生成一个顺序的行号,而他生成顺序的标准,就是后面紧跟的OVER(ORDER BY ReportID),其中ReportID可 以是联合主键。下面,我们看看怎么具体应用这个RowNo进行分页.
SELECT TOP 10 *  FROM
(SELECT top 10 ROW_NUMBER() OVER (ORDER BY ReportID) AS RowNo
FROM TABLE) AS A
WHERE RowNo > " + pageIndex*10


三、ORCALE数据库 分页查询
ORCALE数据库实现分页查询可以使用 row_number()函数或者使用rownum 虚列两种方法。
第一 种:利用分析函数row_number() 方法
select * from(
select t.*,row_number() over (order by t1.id) rowno from TABLE1
)
where rowno between 21 and 40;

第二种:直接 使用rownum 虚列
select * from
(select t.*,rownum as rowno from TABLE1 )
where rowno between 10 and 20

这两种方法比较,显然第二种方法比较好。因为不用order by语句,会提高检索数据的速度的,尤其数据量越大时,第二种方法快速检索数据越明显。
分享到:
评论

相关推荐

    数据库分页SQL

    常用数据库分页sql(),1.oracle数据库分页;2.DB2数据库分页;3.SQL Server 2000数据库分页;4.SQL Server 2005数据库分页5.MySQL数据库分页

    常用的数据库分页语句

    数据库分页是数据库管理系统中一个重要的查询技术,用于在大量数据中实现高效的检索。当用户在网页或应用程序中浏览数据时,通常不希望一次性加载所有记录,而是分页显示,这样可以减少网络传输的数据量,提高用户...

    常用数据库sql分页

    数据库分页是指从大规模的数据集中提取指定的记录数,以减少数据传输量,提高应用程序的性能和用户体验。常见的数据库管理系统包括MySQL、SQL Server、Oracle、DB2等,每种数据库管理系统都有其特有的分页机制和语法...

    数据库分页数据库分页数据库分页数据库分页

    ### 数据库分页技术详解 #### 一、引言 在大数据时代,高效的数据管理和查询技术变得尤为重要。其中,数据库分页技术作为一种提高用户体验、优化数据检索效率的重要手段,在各类应用系统尤其是Web应用中得到了广泛...

    mysql数据库实现分页

    在MySQL中,最常用的分页查询方式是使用`LIMIT`和`OFFSET`关键字。`LIMIT`用于指定每页显示的记录数,而`OFFSET`用于跳过多少条记录,达到从特定位置开始返回结果的目的。 例如,要获取第2页,每页显示10条记录的...

    php 数据库分页显示

    PHP作为常用的后端开发语言之一,在处理数据库分页方面有着成熟的解决方案。 #### 分页查询的SQL语句 在PHP中实现数据库分页显示的关键在于构造正确的SQL语句。根据题目中的描述,主要使用的SQL语句如下: ```sql...

    易语言一个简单的数据库分页例程

    在这个“易语言一个简单的数据库分页例程”中,我们将探讨如何使用易语言来实现数据库数据的分页显示。 在数据库应用中,分页是常见的数据展示方式,它可以帮助用户更有效地浏览大量数据,避免一次性加载所有数据...

    数据库分页优化技术分析与实现

    在介绍数据库分页优化技术时,首先应当明确传统分页查询方法所存在的问题。在传统方法中,分页查询通常采用(limit, offset)方式,但这种方式随着数据量的增长及翻页数量的增加,查询效率会显著降低。尤其在数据量较...

    基于MVC模式的数据库分页显示

    【数据库分页显示】在开发WEB应用系统时,特别是面对大量数据时,分页显示是一项重要的优化技术。它避免一次性加载所有数据导致的性能下降和用户体验不佳。在MySQL数据库中,可以使用`LIMIT`关键字进行分页,例如`...

    数据库分页代码

    数据库分页是Web应用开发中常见的一种技术,用于在大量数据中实现高效的浏览体验,避免一次性加载所有数据导致页面响应慢或内存压力过大。这里我们将深入探讨如何在Java环境下实现数据库分页,并结合UTF-8编码标准...

    常用类 数据库连接类 分页类

    本资源包包含了一些基本但非常实用的PHP类,主要包括数据库连接类、分页类以及图像处理类。接下来,我们将详细介绍这些类及其相关知识点。 1. **数据库连接类**: - PDO (PHP Data Objects):PDO 是 PHP 提供的一...

    数据库基本概念 ,常用数据库,sql server数据库,Access数据库,sql语句,数据库连接,数据库分页显示

    #### 二、常用数据库类型 - **MS Access**:是一种桌面关系数据库管理系统,适用于个人或小型企业。它易于使用,功能强大,支持多种数据类型。 - **SQL Server**:是由微软开发的一种关系型数据库管理系统,广泛应用...

    数据库分页技术超级导航条

    数据库分页技术是Web开发中一个非常重要的概念,特别是在处理大量数据时,为了提高用户体验和系统性能,分页是必不可少的。"数据库分页技术超级导航条"可能是指一种优化了的分页实现,它结合了导航条的功能,使得...

    数据库分页查询语句

    ### 数据库分页查询语句 #### 概述 在处理大量数据时,为了提高用户体验并减轻服务器压力,我们通常采用分页的方式展示数据。不同的数据库管理系统(DBMS)提供了各自的方法来实现分页功能。本文将详细介绍Oracle...

    几种数据库常见分页sql

    本文将详细介绍在SQL Server、Oracle以及MySQL这三种常用数据库中实现分页查询的方法。 ### SQL Server 分页查询 #### 方法一:使用 `TOP` 关键字 SQL Server 提供了 `TOP` 关键字来进行分页查询。这种方式比较...

    数据库分页查询.doc

    数据库分页查询是数据库管理系统中常用的一种技术,用于在大量数据中检索特定范围的记录,以提高用户体验,尤其是网页或应用程序展示数据时。下面分别介绍MySQL、SQLServer和Oracle数据库的分页查询方法。 1. MySQL...

    oracle、mysql数据库分页.pdf

    数据库分页是数据库管理系统中一个常见的操作,尤其是在处理大量数据时,为了提高用户体验,通常需要分批次地加载数据。在Oracle、MySQL、SQL Server和DB2等不同的数据库系统中,分页实现方式有所不同。以下是对这些...

    数据库分页

    数据库分页是数据库管理系统中一个重要的技术,它用于在大量数据中实现高效的浏览和检索,尤其是在Web应用中,用户通常不希望一次性加载所有记录,而是希望通过分页的方式逐步加载,提高用户体验并减轻服务器负担。...

    linq分页方法步骤在注释里_生成数据库分页及sql语句

    首先,数据库分页是处理大量数据时非常常用的技术,它可以提高网页或应用程序的性能,避免一次性加载所有数据导致的内存压力和用户界面响应延迟。LINQ提供了方便的方法来实现这一功能。 1. **创建数据上下文** 在...

    数据库分页语句.pdf

    数据库分页是数据库查询中常用的一种技术,用于在大量数据中高效地获取特定范围的数据,通常用于实现网页或应用的分页显示。本篇将详细阐述分页语句的使用方法,以SQL Server、MySQL和Oracle为例。 1. SQL Server ...

Global site tag (gtag.js) - Google Analytics