常用3種資料庫的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;
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;
相關文章
- SQL - 常用資料庫分頁SQL資料庫
- 基於Sql server資料庫的四種分頁方式總結SQLServer資料庫
- SQL資料分頁SQL
- oracle資料庫用sql實現快速分頁Oracle資料庫SQL
- 資料庫效能 常用SQL資料庫SQL
- 資料庫常用的sql語句大全--sql資料庫SQL
- SQL Server資料庫中分頁編號的另一種方式SQLServer資料庫
- 三種SQL分頁方式SQL
- 常用的檢視資料庫的SQL資料庫SQL
- MySql、SqlServer、Oracle 三種資料庫查詢分頁方式MySqlServerOracle資料庫
- 資料庫常用sql 語句資料庫SQL
- 通用的SQL Server資料庫查詢分頁儲存過程SQLServer資料庫儲存過程
- Sql Server 資料庫學習-常用資料庫 物件SQLServer資料庫物件
- 幾種常用資料庫比較資料庫
- 資料庫常用操作SQL語句資料庫SQL
- 資料庫常用的sql語句彙總資料庫SQL
- 工作中常用的oracle資料庫sqlOracle資料庫SQL
- 資料庫巡檢常用的SQL語句資料庫SQL
- SQLServer資料庫管理的常用SQL語句SQLServer資料庫
- mysql中limit的用法詳解[資料分頁常用]MySqlMIT
- Oracle資料庫中的分頁查詢Oracle資料庫
- 爬取網頁後的抓取資料_3種抓取網頁資料方法網頁
- 資料庫SQL調優的幾種方式資料庫SQL
- sql統計各種奇葩的資料庫表資料SQL資料庫
- 3分鐘看完SQL常用語法SQL
- access資料庫大資料量分頁的問題資料庫大資料
- Oracle資料庫健康檢查常用SQLOracle資料庫SQL
- 基於MSSQLSQL資料庫大批次資料的分塊分頁查詢SQL資料庫
- 資料庫系列:巨量資料表的分頁效能問題資料庫
- SQLServer資料庫管理常用的SQL和T-SQL語句SQLServer資料庫
- 常見資料庫的分頁實現方案資料庫
- 1.4 資料庫和常用SQL語句(正文)——MySQL資料庫命令和SQL語句資料庫MySql
- ASP建立SQL Server資料庫的兩種方法SQLServer資料庫
- #資料庫3-1_SQL概述資料庫SQL
- SQL Server資料庫管理常用SQL和T-SQL語句SQLServer資料庫
- Java連線oracle資料庫的兩種常用方法JavaOracle資料庫
- 【SQL】18 SQL NULL 函式、SQL 通用資料型別、SQL 用於各種資料庫的資料型別SQLNull函式資料型別資料庫
- Oracle常用命令 檢視資料庫的SQLOracle資料庫SQL