oracle中,rownum與rowid的區別

2021-08-31 02:58:47 字數 845 閱讀 2622

oracle中,rownum與rowid的區別

1.rownum

rownum是乙個偽數列(即實際並不存在的數列),按順序標記,且遞增,只有有了rownum=1的記錄,才會有rownum=2的

記錄。

示例:

1. select * from eap_dept d where rownum = 1;  可查詢出一條資料

2. select * from eap_dept d where rownum = 2; 空資料集

3. select * from eap_dept d where rownum < 10; 查詢出9條資料

4. select * from eap_dept d where rownum > 10; 空資料集

5. 利用rownum進行分頁查詢:

select * from (

select d.dept_id,

d.dept_code,

d.dept_name,

rownum as seq

from eap_dept d

) t where t.seq between 10 and 20;

2.rowid

每一行資料的rowid是固定且唯一的 ,在這一行資料儲存到資料庫的時候rowid的值就確定了。可用rowid查詢資料,且它的查詢速度是最快的,但一般不這樣用,因為這個rowid沒有任務語義。rowid的值只有在表發生移動的情況下才會改變(如表空間變化、資料匯入/匯出時)。

示例:

select * from eap_dept where rowid='aaandlaafaaaarnaaa';

Oracle中rowid與rownum的區別

oracle中rowid和rownum都是偽列,但含義完全不同。rowid是實體地址,用於定位oracle中具體資料的儲存位置,而rownum則是sql語句的輸出結果排序。通俗的講 rowid是相對不變的,rownum會變化,尤其是使用order by的時候。需要注意的是rownum的用法 sele...

oracle中 rownum與rowid的理

一 oracle分頁查詢 我們先看學習一下oracle 分頁查詢的語法示例,然後在具體學習用 rownum 的原理。從第 1條開始,每次選 n個,從第 1 m個開始每次選n個 select t2.from select rid from select r.rid,rownum linenum fro...

ORACLE 中ROWNUM用法總結

oracle 中rownum用法總結 對於 oracle 的 rownum 問題,很多資料都說不支援 between.and,只能用以上符號 並非說用 between.and 時會提示sql語法錯誤,而是經常是查不出一條記錄來,還會出現似乎是莫名其妙的結果來,其實您只要理解好了這個 rownum 偽...