1樓:匿名使用者
一、偽列就像oracle中的乙個表列,但實際上它並未儲存在表中。偽列可以從表中查詢,但是不能插入、更新或刪除它們的值。常用的偽列:rowid和rownum。
rowid:資料庫中的每一行都有一腔櫻個行位址,rowid偽列返回該行位址。可以使用rowid值來定位表中的一行。通常情況下,rowid值可以唯一地標識資料庫中的一行。
rowid偽列有以下重要用途:
1)能以最快的方式訪問表中的一行;
2)能顯示錶的行是如何儲存的。
3)可以作為表中行的唯一標識。鄭圓州。
如:sql> select rowid,ename from emp;
rownum:對於乙個查詢返回的每一行,rownum偽列返回乙個數值代表的次序。返回的第一行的rownum值為1,第二行的rownum值為2,依此類推。
通過使用rownum偽列,使用者可以限制查詢返回的行數。
如:sql>select * from emp where rownum<11; 從emp表中提取10條記錄 二、oracle中不支援select top n from tablename 查詢,但是通過 order by 和 rownum 組合可以實現此功能喊蔽。例如:
select 列名1..列名n from
select 列名1..列名n from 表名 order by 列名1..列名n)
where rownum <=n(抽出記錄數)
order by rownum asc
2樓:匿名使用者
偽列有效,oracle不支援select top語句,偽列可替代top的作用。
oracle 中偽列的問題
3樓:老刀正能量
一、select * from (select rownum as rn,name from cus order by name) where rownum <= 3;
這裡的rownum是重新生成的。
二、select * from (select rownum as rn ,name from cus order by name) where rn<= 3;
而這裡的rn是指裡面的sql語句生成的rownum,是已經固定了的!
oracle偽列,偽表是什麼?有什麼用?與普通表、普通列有什麼區別?
4樓:網友
偽列:資料庫沒有實際儲存的列。
例如,rownum。 就是行號。你可以在任何乙個talbe,view,或者select中查到這個列,但是,這個列不存在任何的物理的儲存。
另外的例子: level , rowid 都是偽列普通的列,是實際有儲存的,在物理儲存上就有這個資料。偽列就沒有,是算出來的。可以認為是一種特殊的函式。
5樓:網友
虛擬的列。 在查詢中。 或者在 檢視中。 沒有實際的資料儲存。 這一列是固定的值。 資料為列名。
這一列只能用於查詢,不能更新。
例子 select 'a' ,'b' from dual; 這裡 有倆個偽列 (虛列)
用於檢視中也可以。
create view tt
表名。列1 as 列1 //真實存在的列'tag' as tag //虛擬的列,該列所有行的值都為 tag
from 引用的表名。
6樓:
可以完成資料庫管理,和某些功能的隱藏列,如rowid,rowscn,rownum等等。
oracle偽列以及偽表,有什麼用?
7樓:哈哈嗯吶
偽列以及偽表。
行序 rownumber 和 相當於主鍵的rowidrownumber 根據你排序方式不同,都是按照自然序列增加的。
rowid 不是,rowid是資料儲存是,即生成的。
oracle中的rownum屬性在where語句中大於號不起作用
8樓:
rownum是個偽列,使用時有一些特殊性。例如用於where條件時,不能用》、>=、=等操作符,因為只有有具體記錄時,rownum才有值。where條件用於篩選記錄時,《是可以篩選到記錄的,但是》就篩選不到記錄了。
9樓:網友
rownum是指對你的查詢結果集進行的編號。
12意思就是返回前11條記錄,>8 意思是返回第9條以上的記錄,為什麼這樣永遠不會有返回,是因為每次取回的記錄都是當作第一條,自然<8, 然後被濾掉,所以不會有返回值。。。
10樓:網友
大於不是這麼用的,如果想找到從第二行記錄以後的記錄,當使用rownum>8是查不出記錄的,原因是由於rownum是乙個總是從1開始的偽列,oracle 認為rownum> n(n>1的自然數)這種條件依舊不成立,所以查不到記錄。
sql> select rownum,id,name from abc where rownum >8;
rownum id name
可以使用以下的子查詢方法來解決。注意子查詢中的rownum必須要有別名,否則還是不會查出記錄來,這是因為rownum不是某個表的列,如果不起別名的話,無法知道rownum是子查詢的列還是主查詢的列。
sql>select * from(select rownum no ,id,name from abc) a where no>8;--除了rownum其他隨意寫的。
哪位oracle大神能夠告訴我,有關偽列的問題。
11樓:網友
oracle的rownum不能這麼用。rownum是對結果集的編序排列,始終是從1開始,所以你的rownum>5永遠為假,所以就沒記錄返回。rownum只能用於<。
當然你可以做巢狀,將rownum選出來後再做查詢。
12樓:網友
select * from (select rownum r,emp.* from emp) where where r>5 and r<10
rownum這個偽列中能用小於或者小於等於。
在oracle中有個rowid和rownum,他們是一樣的嗎?有什麼作用?大神求解!!!
13樓:炳德國學堂
rowid和rownum都是偽列,但含義完全不同。rowid是實體地址,用於定位oracle中具體資料的物理儲存位置,而rownum則是sql的輸出結果排序。通俗的講:
rowid是相對不變的,rownum會變化,尤其是使用order by的時候。
rowid 用於定位資料表中某條資料的位置,是唯一的、也不會改變。
rownum 表示查詢某條記錄在整個結果集中的位置, 同一條記錄查詢條件不同對應的 rownum 是不同的而 rowid 是不會變的。
14樓:網友
不一樣,rowid是乙個唯一標識,作用於整個資料庫,這個id可以表示具體一行記錄(就想身份證號),rownum則是結果集的行數。
資料結構偽碼解釋下,資料結構虛擬碼完全不懂啊。。
看了你的問題,其實很簡單,都是關於結點的問題,建議你好好看下資料結構的書!刪除結點,p的下乙個是q,現在刪除了乙個數,所以也就是說 p的下個結點是q,q的下個結點為x,現在q處結點被刪,所以,p的下個結點就是q 的下個結點 x,至於插入的那個也是一樣的道理,l為插入的數的結點位置,原來p指向的下乙個...
linu下安裝oracle中執行runinstaller提示沒有
linux下安裝oracle中執行.runinstaller 提示沒有這個檔案或目錄是設定錯誤造成的,解決方法為 1 檢查磁碟空間,按照要求oracle安裝盤應該大於6.5g以上。2 swap分割槽和記憶體。swap分割槽我們可以用命令檢視 grep swaptotal proc meminfo f...
有誰能夠通俗的給我解釋一下Oracle軟體,是一款怎樣的軟體,主要用用於哪些方面
中文的含義 甲骨文 oracle 是一家大型的軟體公司 資料庫管理軟體的巨頭 它專注於做大型資料庫軟體它在資料庫軟體的開發上是最有實力的,就像ms在pc作業系統的地位一樣,佔有統治的地位 除了oracle公司,還有其他的軟體公司也開發資料庫軟體比如像微軟,ibm等公司也開發資料庫軟體,它們的產品名字...