oracle和mysql的分頁

2022-08-26 20:39:08 字數 1095 閱讀 3750

(1)mysql的limit m,n語句

limit後的兩個引數中,引數m是起始下標,它從0開始;引數n是返回的記錄數。我們需要分頁的話指定這兩個值即可

(2)oracle資料庫的rownum

在oracle資料庫中,分頁方式沒有mysql這樣簡單,它需要依靠rownum來實現.

rownum表示一條記錄的行號,值得注意的是它在獲取每一行後才賦予.因此,想指定rownum的區間來取得分頁資料在一層查詢語句中是無法做到的,要分頁還要進行一次查詢.

select * from 

(select a.*, rownum rn

from (select * from table_name) a

where rownum <= 40

)where rn >= 21

其中最內層的查詢select * from table_name表示不進行翻頁的原始查詢語句。rownum <= 40和rn >= 21控制分頁查詢的每頁的範圍

上面給出的這個分頁查詢語句,在大多數情況擁有較高的效率。分頁的目的就是控制輸出結果集大小,將結果盡快的返回。在上面的分頁查詢語句中,這種考慮主要體現在where rownum <= 40這句上。

選 擇第21到40條記錄存在兩種方法,一種是上面例子中展示的在查詢的第二層通過rownum <= 40來控制最大值,在查詢的最外層控制最小值。而另一種方式是去掉查詢第二層的where rownum <= 40語句,在查詢的最外層控制分頁的最小值和最大值。這是,查詢語句如下:

select * from 

(select a.*, rownum rn

from (select * from table_name) a

)where rn between 21 and 40

對比這兩種寫法,絕大多數的情況下,第乙個查詢的效率比第二個高得多。

這 是由於cbo優化模式下,oracle可以將外層的查詢條件推到內層查詢中,以提高內層查詢的執行效率。

oracle分頁和mysql分頁

mysql 分頁 查前5 資料 select from table name limit 0,5 select from table name limit 5 limit關鍵字的用法 limit offset,rows offset指定要返回的第一行的偏移量,rows第二個指定返回行的最大數目。初始...

MySql和Oracle的分頁

mysql分頁 pageno 第幾頁 pagesize 每頁有多少資料 select from t emp limit pageno 1 pagesize,pagesize limit m,n 從第m條資料開始 從0算起 包括m條 查詢出n條資料 例如 查詢第5到第 8條資料 select from...

mysql和oracle分頁語句

分頁是常見的提高查詢效率的方法,因此熟練掌握不同資料庫的分頁語句很重要 mysql的分頁如下 select from table name where 1 1 limit start,end 最好換成需要查詢的字段,不要用 start 頁數 從0開始計算 end 每頁條數 oracle 的分頁如下 ...