Oracle中ROWID和ROWNUM的用法
ROWID的用法:
ROWID是資料的詳細位址,通過rowid,oralce可以快速的定位某行具體的資料的位置。
[sql] view plain copy
- select a.*, rowid from 表名 a where 列名 = '值'
ROWID常用用法1:
[sql] view plain copy
- select a.*, a.rowid from 表名 a where 列名 = '值';
點選
即可進行這一行值的修改。 修改後點選
,然後點選
修改儲存完成。
ROWID常用用法2:(删除重複記錄)
DELETE FROM EMP E
WHERE E.ROWID >; (SELECT MIN(X.ROWID)
FROM EMP X
WHERE X.EMP_NO = E.EMP_NO);
最高效的删除重複記錄方法 ( 因為使用了ROWID)
ROWNUM的用法:
ROWNUM表示查詢某條記錄在整個結果集中的位置,同一條記錄查詢條件不同對應的rownum是不同的而rowid是不會變的。
rownum表明了查詢記錄的順序,傳回的第一條row的序号為1,第二條row的序号為2,以此類推。 用法:
1.可通過rownum限制傳回結果的記錄數。
[sql] view plain copy
- select rownum from test where rownum < 10
2.通過rownum為表中某列産生一個唯一(UNIQUE)值
[sql] view plain copy
- update table_name set column_name = rownum
3.依靠重命名列,和子查詢可以實作rownum>10的查詢
[sql] view plain copy
- select count(*) from(select t.*,rownum rn from ljb_test t)where rn > 10
4.Oracle的分頁查詢,也是通過ROWNUM實作的(分三層實作,友善記憶)
❌錯誤示例:
select rownum,empno,ename,sal from emp where rownum>= and rownum<=;
✅正确示例:
select *
from (select rownum r,e1.*
from (select * from emp order by sal) e1
where rownum <=
)
where r >=;
注:rownum應用中>,>=,=,between...and條件,傳回結果都為空。
覺得對你有幫助或者喜歡的可以點個贊哦~~