`

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

有问题吗?

相关推荐

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

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

    经典SQL语句大全

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

    C#连接数据库源码下载

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

    经典全面的SQL语句大全

    经典SQL语句大全 下列语句部分是Mssql语句,不可以在access中使用。  SQL分类:  DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)  DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)  DCL—数据控制...

    C#程序开发范例宝典9

    401 实例279 利用SQL语句删除数据 402 9.10 数据记录 403 实例280 分页显示信息 403 实例281 移动记录 404 9.11 数据维护 406 实例282 在C#中分离SQL Server数据库 406 实例283 ...

    sql经典语句一部分

    经典SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice ...

    数据库操作语句大全(sql)

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

    XML DB Query 简体中文版

    可以访问MS-SQL Server、Oracle及Access数据库,对于MS-SQL Server及Oracle可以一次执行多条SQL语句及存储过程 ?●?提供一个命令窗口,可以执行全部或选中的语句,可以将这些SQL语句保存到查询文件或从查询文件中...

    SocanCode7.4.1

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

    QingWeb Code Slave 代码生成器 v2.0

    3、支持SQL Server/Oracle/MySQL/Access等常用数据库new 新 特 性增加对Oracle/MySQL的支持 。增加XSLT模板,实现用户自定义模板。基于ICSharpCode.TextEditor改进代码编辑器,优化高亮,新增行号显示。增加SQL查询...

    SQL培训第一期

    存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 1.9.2 准备 create table t_user ( username varchar2(20), ...

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

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

    DB#2.0.5.0(SQL助手&代码生成器)

    1、SQL助手:管理数据库表,查看结构、生成常用SQL语句和存储过程、导出表结构文档。新特性:支持SQL自动完成 2、C#代码生成器:系统自带...支持sqlserver/access /oracle/mysql 官方网页:http://dbsharp.qingweb.com

    C#程序开发范例宝典(第2版).part13

    实例081 DataGridView控件的分页功能 108 实例082 从DataGridView控件拖放数据至TreeView控件 113 实例083 在DataGridView控件中实现合并单元格 116 实例084 在DataGridView控件中显示图片 118 实例085 为...

    C#.net_经典编程例子400个

    183 实例125 如何旋转JPG图像 184 实例126 如何实现图形翻转 185 4.5 图像效果 186 实例127 百叶窗效果显示图像 186 实例128 推拉效果显示图像 187 实例129 水平交错效果显示图像 188...

Global site tag (gtag.js) - Google Analytics