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

作者:10687 来源:赛迪网 时间:2008-11-28 14:52:00 

在程序的开发过程中,处理分页是大家接触比较频繁的事件,因为现在软件基本上都是与数据库进行挂钓的。但效率又是我们所追求的,如果是像原来那样把所有满足条件的记录全部都选择出来,再去进行分页处理,那么就会多多的浪费掉许多的系统处理时间。为了能够把效率提高,所以现在我们就只选择我们需要的数据,减少数据库的处理时间,以下就是常用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;

标签:
0
投稿

猜你喜欢

  • 解决新django中的path不能使用正则表达式的问题

    2021-06-09 18:45:21
  • C#访问PostGreSQL数据库的方法

    2024-01-23 01:00:13
  • MySQL Workbench的使用方法(图文)

    2024-01-26 18:47:12
  • python3.6生成器yield用法实例分析

    2022-11-22 00:07:05
  • Quester解读17条广告效果测定

    2007-11-27 12:51:00
  • 简单的抓取淘宝图片的Python爬虫

    2022-01-19 14:42:31
  • PHP利用func_get_args和func_num_args函数实现函数重载实例

    2023-06-15 09:25:51
  • pytorch中的torch.nn.Conv2d()函数图文详解

    2021-02-01 17:32:13
  • Python实现统计单词出现的个数

    2022-11-01 12:19:30
  • python实现简单购物商城

    2022-01-23 06:47:39
  • 如何合理使用数据库冗余字段的方法

    2024-01-18 16:52:00
  • PyQt5实现数据的增删改查功能详解

    2021-03-30 06:50:07
  • 数据库设计工具MySQL Workbench使用教程(超级详细!)

    2024-01-29 01:26:22
  • JavaScript中用getDate()方法返回指定日期的教程

    2024-05-09 09:05:46
  • AlmaLinux 9 安装 MySQL 8.0.32的详细过程

    2024-01-21 21:38:36
  • php巧获服务器端信息

    2023-10-04 02:18:39
  • MYSQL表优化方法小结 讲的挺全面

    2024-01-25 14:20:00
  • 简单的Python人脸识别系统

    2023-01-26 23:31:57
  • JavaScript实现酷炫的鼠标拖尾特效

    2024-06-16 16:02:25
  • vue.js前端网页弹框异步行为示例分析

    2024-04-28 09:21:58
  • asp之家 网络编程 m.aspxhome.com