簡(jiǎn)單實(shí)例解釋Oracle分頁(yè)查詢(xún)
什么是分頁(yè)查詢(xún)
分頁(yè)查詢(xún)就是把query到的結(jié)果集按頁(yè)顯示。比如一個(gè)結(jié)果集有1W行,每頁(yè)按100條數(shù)據(jù)庫(kù)。而你獲取了第2頁(yè)的結(jié)果集。
為什么要分頁(yè)查詢(xún)
如果一個(gè)結(jié)果集有幾十W行,那么在一個(gè)頁(yè)面上顯示肯定顯示不完。同時(shí),顯示數(shù)據(jù)庫(kù)記錄是需要加載到內(nèi)存的,而顯示大量數(shù)據(jù)是消耗內(nèi)存更多。
我們可以為了以下目的使用分頁(yè)查詢(xún):
- 為了精確定位結(jié)果集的內(nèi)容
- 為了節(jié)約內(nèi)存
- 為了在有限的頁(yè)面空間顯示適度的數(shù)據(jù)。
如何實(shí)現(xiàn)分頁(yè)查詢(xún)
使用Oracle的EMP表
select * from
( select rownum rn, e.* from
( select * from EMP) e
);
結(jié)果如下:

分頁(yè)查詢(xún)?cè)创a如下:
select * from
( select rownum rn, e.* from
( select * from EMP) e
)
where rn > pageSize * (page - 1) and rn <= pageSize * page
分析源碼:
我們選定每頁(yè)(pageSize)為5。那么EMP表目前共有三頁(yè),1~5行為1頁(yè);6~10行為1頁(yè);1~15行為1頁(yè)(缺第15行,那么第3頁(yè)就顯示4行記錄)
頁(yè)面從第1頁(yè)開(kāi)始。
我們要查詢(xún)第2頁(yè)的記錄,那么page = 2。
where rn > 5 and rn <= 10
那么第2頁(yè)是由第6,7,8,9,10行記錄形成的。
select * from
( select rownum rn, e.* from
( select * from EMP) e
)
where rn > 5 and rn <= 10
結(jié)果如下:

分頁(yè)查詢(xún)也可以使用betwenn ... and ...
where rn = between (pageSize * (page - 1) + 1) and pageSize * page
可見(jiàn)分頁(yè)查詢(xún)是取某一范圍的結(jié)果集。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Oracle ASM故障數(shù)據(jù)恢復(fù)解決方案
在本篇文章里小編給大家整理的是關(guān)于Oracle ASM故障數(shù)據(jù)恢復(fù)解決方案以及相關(guān)知識(shí)點(diǎn),有需要的朋友們參考下。2019-11-11
SQL查詢(xún)包含下劃線(xiàn)的字段內(nèi)容操作
這篇文章主要介紹了SQL查詢(xún)包含下劃線(xiàn)的字段內(nèi)容操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
怎么才能限制SQL Server只能讓指定的機(jī)器連接
怎么才能限制SQL Server只能讓指定的機(jī)器連接...2007-03-03
navicat導(dǎo)入oracle導(dǎo)出的dmp文件
現(xiàn)在工作中常用Oracle數(shù)據(jù)庫(kù),但是查詢(xún)工具還是Navicat最好用,不論是數(shù)據(jù)導(dǎo)入導(dǎo)出,還是執(zhí)行語(yǔ)句,都很清晰明了,下面這篇文章主要給大家介紹了關(guān)于navicat導(dǎo)入oracle導(dǎo)出的dmp文件的相關(guān)資料,需要的朋友可以參考下2023-05-05
Oracle故障處理Rman-06207&Rman-06214的方法
新搭建的環(huán)境,還沒(méi)上線(xiàn),今天在部署腳本,RMAN 備份中有一個(gè)警告,下面這篇文章主要給大家介紹了關(guān)于Oracle故障處理Rman-06207&Rman-06214的相關(guān)資料,需要的朋友可以參考下2022-11-11
Oracle SQL性能優(yōu)化系列學(xué)習(xí)一
Oracle SQL性能優(yōu)化系列學(xué)習(xí)一...2007-03-03
Linux系統(tǒng)下Oracle數(shù)據(jù)庫(kù)監(jiān)聽(tīng)啟動(dòng)關(guān)閉命令詳解
現(xiàn)在很多朋友在學(xué)習(xí)linux下oracle 數(shù)據(jù)庫(kù)的時(shí)候可能都發(fā)現(xiàn)了一個(gè)問(wèn)題,oracle數(shù)據(jù)庫(kù)的服務(wù)不能自動(dòng)啟動(dòng),這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)下Oracle數(shù)據(jù)庫(kù)監(jiān)聽(tīng)啟動(dòng)關(guān)閉命令的相關(guān)資料,需要的朋友可以參考下2024-01-01
Oracle數(shù)據(jù)庫(kù)中文顯示???????解決辦法
這兩天剛剛使用Oracle,出現(xiàn)了好多不愉快的事情,下面分享一下我的一點(diǎn)經(jīng)歷,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)中文顯示???????的解決辦法,需要的朋友可以參考下2024-04-04
安裝Oracle10g遭遇ins_ctx.mk問(wèn)題解決方法
在CentOS6.2操作系統(tǒng)下,安裝oracle10g時(shí)遭遇ins_ctx.mk問(wèn)題,這是缺少glibc-devel的32位包所導(dǎo)致,下面是解決方法2014-09-09
Oracle連續(xù)相同數(shù)據(jù)的統(tǒng)計(jì)
今天小編就為大家分享一篇關(guān)于Oracle連續(xù)相同數(shù)據(jù)的統(tǒng)計(jì),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01

