7 回答

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

TA貢獻1824條經驗 獲得超8個贊
dual是個虛表,其中只有一列,當你查詢時間或者日期等的時候就需要使用這個表,例如 select sysdate from dual;
因為在oracle當中查詢語句必須要有關鍵字 select ....from tablename; 只有這樣語句才完整,要是沒有表名就無法查詢,而時間,日期等不存在于任何表,這個時候就引入了 dual 虛表的概念。
- 7 回答
- 0 關注
- 529 瀏覽
添加回答
舉報