7 回答

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
1. dual 確實(shí)是一張表.是一張只有一個(gè)字段,一行記錄的表.
2.習(xí)慣上,我們稱之為'偽表'.因?yàn)樗淮鎯?chǔ)主題數(shù)據(jù).
3. 他的存在,是為了操作上的方便.因?yàn)閟elect 都是要有特定對(duì)象的.
如:select * from mytable ;
select * from myview;
等等.
但如果我們不需要從具體的表來取得表中數(shù)據(jù),而是單純地為了得到一些我們想得到的信息,并要通過select 完成時(shí),就要借助一個(gè)對(duì)象,這個(gè)對(duì)象,就是dual;
如我們要計(jì)算 999*999 的值,可以用:
select 999*999 from dual;
來實(shí)現(xiàn);
要拼接一個(gè)電話信息:
select concat('010-','88888888')||'轉(zhuǎn)23' 高乾競(jìng)電話 from dual;
就變成了我們想要的格式輸出.
4.當(dāng)然,我們不一定要dual ,也可以這樣做.例如:
create table mydual( dummy varchar2(1));
也可以實(shí)現(xiàn)和dual 同樣的效果:
select 999*999 from mydual;
不過,dual 我們都用習(xí)慣了,就無謂自己再搞一套了.

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
只有一條數(shù)據(jù)的 虛擬表
select * from dual;
用于計(jì)算一些系統(tǒng)時(shí)間、或者處理一些字符串、處理一些運(yùn)算等等作用。

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
dual是個(gè)虛表,其中只有一列,當(dāng)你查詢時(shí)間或者日期等的時(shí)候就需要使用這個(gè)表,例如 select sysdate from dual;
因?yàn)樵趏racle當(dāng)中查詢語句必須要有關(guān)鍵字 select ....from tablename; 只有這樣語句才完整,要是沒有表名就無法查詢,而時(shí)間,日期等不存在于任何表,這個(gè)時(shí)候就引入了 dual 虛表的概念。

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
在Oracle數(shù)據(jù)庫內(nèi)有一種特殊的表Dual。Dual表是Oracle中的一個(gè)實(shí)際存在的表,任何用戶均可讀取,常用在沒有目標(biāo)表的Select中。Dual表由Oracle連同數(shù)據(jù)字典一同創(chuàng)建,所有的用戶都可以用名稱DUAL訪問該表。這個(gè)表里只有一列DUMMY,該列定義為VARCHAR2(1)類型,有一行值X。從DUAL表選擇數(shù)據(jù)常被用來通過SELECT語句計(jì)算常數(shù)表達(dá)式,由于DUAL只有一行數(shù)據(jù),所以常數(shù)只返回一次。
- 7 回答
- 0 關(guān)注
- 780 瀏覽