常用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 server資料庫的四種分頁方式總結SQLServer資料庫
- 資料庫常用的sql語句大全--sql資料庫SQL
- SQL Server資料庫中分頁編號的另一種方式SQLServer資料庫
- Sql Server 資料庫學習-常用資料庫 物件SQLServer資料庫物件
- 資料庫常用操作SQL語句資料庫SQL
- 工作中常用的oracle資料庫sqlOracle資料庫SQL
- 資料庫常用的sql語句彙總資料庫SQL
- 資料庫SQL調優的幾種方式資料庫SQL
- sql統計各種奇葩的資料庫表資料SQL資料庫
- 1.4 資料庫和常用SQL語句(正文)——MySQL資料庫命令和SQL語句資料庫MySql
- Oracle資料庫中的分頁查詢Oracle資料庫
- 【SQL】18 SQL NULL 函式、SQL 通用資料型別、SQL 用於各種資料庫的資料型別SQLNull函式資料型別資料庫
- #資料庫3-1_SQL概述資料庫SQL
- 【資料庫資料恢復】透過資料頁恢復Sql Server資料庫資料的過程資料庫資料恢復SQLServer
- 資料庫系列:巨量資料表的分頁效能問題資料庫
- MySQL資料庫:7、SQL常用查詢語句MySql資料庫
- SQL Server 資料庫檔案的分離和附加SQLServer資料庫
- Android Paging分頁庫的學習(二)—— 結合Room資料庫進行分頁載入AndroidOOM資料庫
- Flutter 頁面間資料傳遞(共享)的幾種常用方式Flutter
- SQL Server在分頁獲取資料的同時獲取到總記錄數的兩種方法SQLServer
- MySQL 資料庫之網際網路常用分庫分表方案MySql資料庫
- 資料庫的集合,分頁及約束條件資料庫
- [資料庫][SQL]圖解各種連線join資料庫SQL圖解
- SQL Server 資料庫部分常用語句小結(二)SQLServer資料庫
- SQL Server 資料庫部分常用語句小結(一)SQLServer資料庫
- MySQL資料庫中SQL語句分幾類?MySql資料庫
- SQL資料庫SQL資料庫
- MySQL 海量資料的 5 種分頁方法和優化技巧MySql優化
- 百億級資料 分庫分表 後怎麼分頁查詢?
- Android Paging分頁庫的學習(一)—— 結合本地資料進行分頁載入Android
- .net中使用oracle資料庫分頁小技巧Oracle資料庫
- SQL Server資料庫怎麼找出一個表包含的頁資訊(Page)SQLServer資料庫
- 資料庫——慢sql的原因資料庫SQL
- 資料庫 根據出生日期計算年齡的sql幾種資料庫寫法資料庫SQL
- 資料庫分庫分表的總結資料庫
- mysql資料庫查詢時用到的分頁方法有哪些MySql資料庫
- SQL稽核 | 如何快速使用 SQLE 稽核各種型別的資料庫SQL型別資料庫
- 線上直播原始碼,java資料分頁幾種方式原始碼Java
- 直播軟體原始碼,java資料分頁幾種方式原始碼Java