1. 程式人生 > 資料庫 >簡單例項解釋Oracle分頁查詢

簡單例項解釋Oracle分頁查詢

什麼是分頁查詢

分頁查詢就是把query到的結果集按頁顯示。比如一個結果集有1W行,每頁按100條資料庫。而你獲取了第2頁的結果集。

為什麼要分頁查詢

如果一個結果集有幾十W行,那麼在一個頁面上顯示肯定顯示不完。同時,顯示資料庫記錄是需要載入到記憶體的,而顯示大量資料是消耗記憶體更多。

我們可以為了以下目的使用分頁查詢:

  • 為了精確定位結果集的內容
  • 為了節約記憶體
  • 為了在有限的頁面空間顯示適度的資料。

如何實現分頁查詢

使用Oracle的EMP表

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

結果如下:

分頁查詢原始碼如下:

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

分析原始碼:

我們選定每頁(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

結果如下:

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

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

可見分頁查詢是取某一範圍的結果集。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。