偽列:Oracle 中偽列就像一個表列(表中的列),但是它並沒有存儲在表中,偽列可以從表中查詢,但不能插入、更新和刪除它們的值
常用的偽列有ROWID和ROWNUM。
ROWID的使用——快速刪除重復的記錄
解析:ROWID是數據的詳細地址,通過rowid,oracle可以快速的定位某行具體的數據的位置。
ROWID可以分為物理rowid和邏輯rowid兩種。
普通的表中的rowid是物理rowid,索引組織表(IOT)的rowid是邏輯rowid。
當表中有大量重復數據時,可以使用ROWID快速刪除重復的記錄。
查詢語句:
select rowid,rownum from student
ROWNUM
ROWNUM 是查詢返回的結果集中行的序號,可以使用它來限制查詢返回的行數
通過測試可知,Rownum只能對=1和<N進行篩選,如果>M不能篩選,如何規避。
通過子查詢構建臨時表,讓偽列Rownun稱為臨時表中的列,然后限定條件使用偽列的
別名。
利用偽列查詢偽列編號等於2的數據
select *from
(
select id,name,rownum rn from student
) temp
where rn =2
利用偽列查詢第4-6條數據
select *from
(
select temp.*,rownum rn from
(
select *from student
) temp
where rownum<=6
)where rn>=4