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

网站建设 2022-07-27 13:01www.1681989.com免费网站

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

1、SQL Server、Aess数据库

这都微软的数据库,都是一家人,基本的操作都是差不多,常采用如下分页语句

PAGESIZE每页显示的记录数

CURRENTPAGE当前页号

数据表的名字是ponents

索引主键字是id

select PAGESIZE from ponents where id not

(select (PAGESIZE(CURRENTPAGE-1))

id from ponents order by id)order by id

如下列

select 10 from ponents where id not

(select 1010 id from ponents order by id)

order by id

从101条记录开始选择,只选择前面的10条记录

2、Oracle数据库

因为Oracle数据库没有Top关键字,所以这里就不能够像微软的数据据那样操作,这里有两种方法

(1)、一种是利用相反的。

PAGESIZE每页显示的记录数

CURRENTPAGE当前页号

数据表的名字是ponents

索引主键字是id

select from ponents where id not

(select id from ponents where

rownum<=(PAGESIZE(CURRENTPAGE-1)))

and rownum<=PAGESIZE order by id;

如下例

select from ponents where id not

(select id from ponents where rownum<=100)

and rownum<=10 order by id;

从101到记录开始选择,选择前面10条。

(2)、使用mus,即中文的意思就是减去。

select from ponents where rownum

<=(PAGESIZE(CURRENTPAGE-1)) mus

select from ponents where rownum

<=(PAGESIZE(CURRENTPAGE-2));

如例select from ponents where

rownum<=10 mus select from ponents

where rownum<=5;.

(3)、一种是利用Oracle的rownum,这个是Oracle查询自动返回的序号,一般不显示,可以通过select rownum from [表名]看到,注意,它是从1到当前的记录总数。

select from (select rownum tid,ponents.

from ponents where rownum<=100) where tid<=10;

3、MySQL数据库

Mysql可以使用 limit子句实现

select from tablename limit start,number

返回从第 start+l条记录开始的number条记录。

推火专家赛迪网

推火专家月光博客


Copyright © 2016-2025 www.1681989.com 推火网 版权所有 Power by