7 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
1. dual 確實(shí)是一張表.是一張只有一個(gè)字段,一行記錄的表.
2.習(xí)慣上,我們稱之為'偽表'.因?yàn)樗淮鎯?chǔ)主題數(shù)據(jù).
3. 他的存在,是為了操作上的方便.因?yàn)閟elect 都是要有特定對(duì)象的.
如:select * from mytable ;
select * from myview;
等等.
但如果我們不需要從具體的表來(lái)取得表中數(shù)據(jù),而是單純地為了得到一些我們想得到的信息,并要通過select 完成時(shí),就要借助一個(gè)對(duì)象,這個(gè)對(duì)象,就是dual;
如我們要計(jì)算 999*999 的值,可以用:
select 999*999 from dual;
來(lái)實(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í)慣了,就無(wú)謂自己再搞一套了.

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

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