`

Oracle、SQL Server、Access利用SQL语句进行高效果分页

阅读更多
在程序开发中,处理分页往往是比较频繁的事件,因为现在软件基本上都是与数据库进行挂钓的。但效率又是我们所追求的,如果是像原来那样把所有满足条件的记录全部都选择出来,再去进行分页处理,那么就会多多的浪费掉许多的系统处理时间。为了能够把效率提高,所以现在我们就只选择我们需要的数据,减少数据库的处理时间,以下就是常用SQL分页处理:
    1、SQL Server、Access数据库
    这都微软的数据库,都是一家人,基本的操作都是差不多,常采用如下分页语句:
    PAGESIZE:每页显示的记录数
    CURRENTPAGE:当前页号
    数据表的名字是:components
    索引主键字是:id
    select top PAGESIZE * from components where id not in
    (select top (PAGESIZE*(CURRENTPAGE-1)) id from components order by id)
    order by id

    如下列:
    select top 10 * from components where id not in
    (select top 10*10 id from components order by id)
    order by id

    从101条记录开始选择,只选择前面的10条记录
    2、Oracle数据库
    因为Oracle数据库没有Top关键字,所以这里就不能够像微软的数据据那样操作,这里有两种方法:
    1)、一种是利用相反的。 
    PAGESIZE:每页显示的记录数
    CURRENTPAGE:当前页号
    数据表的名字是:components
    索引主键字是:id
    select * from components where id not in(select id from components where  rownum<=(PAGESIZE*(CURRENTPAGE-1))) and rownum<=PAGESIZE order by id;

    如下例:
    select * from components where id not in(select id from components where rownum<=100) and rownum<=10 order by id;

    从101到记录开始选择,选择前面10条。
    2)、使用minus,即中文的意思就是减去,呵呵,这语句非常的有意思,也非常好记
    select * from components where rownum<=(PAGESIZE*(CURRENTPAGE-1)) minus select * from components where rownum<=(PAGESIZE*(CURRENTPAGE-2));

     如例:
select * from components where rownum<=10 minus select * from components where rownum<=5;.

    3)、一种是利用Oracle的rownum,这个是Oracle查询自动返回的序号,一般不显示,但是可以通过select rownum from [表名],可以看到,是从1到当前的记录总数。 
   
select * from (select rownum tid,components.* from components where rownum<=100) where tid<=10;

    Oracle毕竟还是大家闺秀,微软的小家碧玉还是差一点,呵呵,自己选择着用吧。
分享到:
评论
3 楼 fantlam 2009-07-09  
fantlam 写道
select top 10 * from components where id not in 
(select top 10*10 id from components order by id)  
order by id
兄弟 你有试过这个语句用在access上
我表里有20000条 查了几分钟

去掉排序就OK了
2 楼 fantlam 2009-07-09  
select top 10 * from components where id not in 
(select top 10*10 id from components order by id)  
order by id
兄弟 你有试过这个语句用在access上
我表里有20000条 查了几分钟
1 楼 ruoye_2008 2009-06-27  
Access中,如果当前页为1,那么:

select top 0 id from components order by id

有问题吗?

相关推荐

    三种数据库利用SQL语句进行高效果分页

    ### 三种数据库利用SQL语句进行高效分页 在数据处理和展示中,分页是一项常见且重要的技术。尤其在数据库查询中,合理地使用分页可以极大地提高系统的响应速度和用户体验。本文将详细介绍如何在三种不同的数据库...

    三种数据库利用SQL语句进行高效果分页,分页

    本文将详细介绍如何在三种主流数据库系统——SQL Server、Access 和 Oracle 中利用 SQL 语句实现高效分页。 1. SQL Server 和 Access 数据库 在 SQL Server 和 Access 这两个微软数据库中,可以使用 `TOP` 关键字...

    oracle mysql sqlserver分页

    本文将详细介绍Oracle、MySQL以及SQL Server三种主流数据库系统中的分页技术,包括它们各自的实现方法和一些实用技巧。 ### 一、Oracle 分页 Oracle数据库提供了强大的功能来支持分页查询。在Oracle中,主要使用`...

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

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

    (sqlserver/oracle/mysql/access/sqlite)数据库操作组件Zhuyi.DBUtility

    - `SQLHelper.cs`:这是针对SQL Server的数据库操作帮助类,提供了执行SQL语句、存储过程,以及分页查询等功能。 - `OracleHelper.cs`:针对Oracle数据库的操作类,同样支持基本的SQL执行和分页处理。 - `MySql...

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

    - **Oracle**:作为一款大型企业级数据库,Oracle被广泛用于需要高可用性和高性能的关键业务应用中。 ### Access 数据库详解 #### 1. 数据类型 - **文本**:用于存储文本信息,最长可达255个字符。 - **数字**:...

    SQLServer,MySQL,Oracle三者的区别.pdf

    - **单引号处理**:Oracle在SQL语句中需要转义单引号,MySQL则不需要。 - **翻页SQL**:Oracle使用ROWNUM进行分页,MySQL使用LIMIT。 - **长字符串处理**:Oracle处理长字符串更为灵活。 - **日期字段**:Oracle...

    sqlapi_oracle.rar_SQLAPI_oracle_sqlapi++

    1. **创建SQL语句对象**:使用`SASqlString`或`SASqlStatement`类来构建SQL语句。 2. **执行DML语句**:对于INSERT、UPDATE、DELETE语句,可以调用`ExecuteUpdate()`方法: ```cpp SASqlString sql("INSERT INTO ...

    Oracle-C#分页控件

    本教程将深入讲解如何在C#环境下利用Oracle数据库实现分页功能。 首先,你需要了解Oracle数据库的基本操作,包括连接数据库、执行SQL语句等。在C#中,通常使用Oracle Managed Data Access (ODP.NET Managed Driver)...

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

    软件功能及特点: 1、类反射工厂,泛型接口,三层架构,缓存机制,存储过程,分页,用户控件,一气呵成 2、支持SQLSERVER、MySql、ACCESS. ...9、数据库操作可选择SQL语句和存储过程 10、其它实用小工具

    JAVA_JDBC面向对象分页(初步设计二之oracle)

    总结来说,面向对象的Java JDBC分页查询涉及到创建Page类来存储分页信息,构造Oracle兼容的SQL语句,以及使用PreparedStatement执行查询。在实际开发中,我们还需要关注性能优化、异常处理和代码的可维护性,确保...

    java连接Oracle分页显示

    在Java中,我们可以使用JDBC(Java Database Connectivity)来连接Oracle数据库并执行上述SQL语句或调用存储过程。以下是一个基本的示例: ```java import java.sql.*; public class OraclePagingExample { ...

    Oracle分页存储过程

    通过上述分析和示例,我们可以看到,利用Oracle存储过程进行分页查询不仅可以提高查询效率,还能增强代码的可读性和可维护性。在实际项目中,结合C#等高级语言的应用,可以进一步提升系统的性能和用户体验。

    经典SQL语句大全

    10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1...

    spring mvc实现Oracle分页

    为了实现分页,我们需要编写SQL语句,包含LIMIT或OFFSET关键字(Oracle中使用ROWNUM和子查询实现类似功能),以限制返回的记录数量。 在Controller层,Spring MVC提供了一个处理HTTP请求并返回响应的机制。在这里,...

    Oracle分页+.cs代码+存储过程+Aspnetpager分页控件

    Oracle数据库在处理大数据量时,分页查询是一个非常重要的功能,它可以提高网页加载速度,减少服务器负担,并提供更好的用户体验。本资源包含Oracle分页的`.cs`代码、存储过程以及Aspnetpager分页控件的使用示例,...

    《SQL 基础教程(第二版)》 电子版

    14. **存储过程和触发器**:存储过程是预编译的SQL语句集合,可以封装复杂的业务逻辑,提高效率。触发器则在特定事件(如INSERT、UPDATE或DELETE)发生时自动执行。 15. **事务处理**:了解事务的ACID属性(原子性...

    利用ASP实现Oracle数据记录的分页显示

    【ASP实现Oracle数据记录分页显示】 在网页中展示大量数据时,为了...这种方式使得Oracle用户也能享受到与Access或SQL Server类似的便捷分页功能,提高了用户体验,同时也充分利用了Oracle在大数据处理方面的优势。

    C#连接数据库源码下载

     实例268 利用SQL语句录入数据 379  实例269 利用存储过程录入数据 380  9.6 图片存取技术 383  实例270 使用存取文件名的方法存取图片 383  实例271 使用ADO NET对象向SQL Server数据库存入图片...

    省市区三级联动通用sql语句

    本文将详细介绍如何利用SQL语句来实现这一功能,适用于MSSQL(Microsoft SQL Server)、MYSQL、ORACLE和ACCESS这四种常见的数据库系统。 首先,我们需要一个基础数据表,这个表通常包含省份、城市和区县三个级别的...

Global site tag (gtag.js) - Google Analytics