小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

從一個簡單實驗來看Oracle分頁查詢

 靜幻堂 2019-12-26
原創(chuàng) 波波說運維 2019-12-21 00:01:00

概述

很多朋友都不太理解為什么要去分頁查詢,今天主要用一個簡單實例來解釋下Oracle數(shù)據(jù)庫的分頁查詢。。。


分頁查詢概念

分頁查詢就是把query到的結(jié)果集按頁顯示。比如一個結(jié)果集有1W行,每頁按100條數(shù)據(jù),而你獲取了第2頁的結(jié)果集。


為什么要分頁查詢

如果一個結(jié)果集有幾十W行,那么在一個頁面上顯示肯定顯示不完。同時,顯示數(shù)據(jù)庫記錄是需要加載到內(nèi)存的,而顯示大量數(shù)據(jù)是消耗內(nèi)存更多。

總之,我們是為了以下目的使用分頁查詢:

  • 為了精確定位結(jié)果集的內(nèi)容
  • 為了節(jié)約內(nèi)存
  • 為了在有限的頁面空間顯示適度的數(shù)據(jù)

分頁查詢實現(xiàn)

使用Oracle的EMP表,原始sql如下:

select * from ( select rownum rn, e.* from ( select * from EMP) e);

結(jié)果如下:

從一個簡單實驗來看Oracle分頁查詢

分頁查詢sql如下:

select * from
( select rownum rn, e.* from
( select * from EMP) e
)
where rn > pageSize * (page - 1) and rn <= pageSize * page

說明:

假設(shè)選定每頁(pageSize)為5。那么EMP表目前共有三頁,1~5行為1頁;6~10行為1頁;1~15行為1頁(缺第15行,那么第3頁就顯示4行記錄),頁面從第1頁開始。

我們要查詢第2頁的記錄,那么page = 2。

where rn > 5 and rn <= 10

那么第2頁是由第6,7,8,9,10行記錄形成的。

select * from
( select rownum rn, e.* from
( select * from EMP) e
)
where rn > 5 and rn <= 10

結(jié)果如下:

從一個簡單實驗來看Oracle分頁查詢

分頁查詢也可以使用betwenn ... and ...

where rn = between (pageSize * (page - 1) + 1) and pageSize * page

可見分頁查詢是取某一范圍的結(jié)果集。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多