程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle 中 dual 詳解

Oracle 中 dual 詳解

編輯:Oracle數據庫基礎
 

基本上oracle引入dual為的就是符合語法
1. 我們先從名稱來說,dual不是縮寫詞,本身就是完整的單詞。dual名詞意思是對數,做形容詞時是指二重的,二元的。
2. Oracle中的dual表是一個單行單列的虛擬表。

3. Dual表主要用來選擇系統變量或求一個表達式的值。
4. 更具體的說,我們見過這樣一個簡單的例子: 
      SELECT sysdate FROM daul
    而Oracle的SELECT語法的限制為:
SELECT * | [column1 [AS alias1], column2 [AS alias2]] FROM table
所以,沒有表名就沒有辦法查詢,而時間日期並不存放在任何表中,於是這個dual虛擬表的概念就被引入了。

備注:

dual是一個系統表,不能刪除或者修改其表結構。它的名稱叫做“偽表”或者“啞表”。
查看其表結構:
SQL> desc dual
名稱        是否為空? 類型
----------- -------- -----------
DUMMY                VARCHAR2(1)

其字段只有一個“dummy”,中文叫做“啞巴”。長度只有1。這個表結構只供參考。

 

DUAL表的用途:
Dual 是 Oracle中的一個實際存在的表,任何用戶均可讀取,常用在沒有目標表的Select語句塊中
--查看當前連接用戶
SQL> select user from dual;
--查看當前日期、時間
SQL> select sysdate from dual;
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
--當作計算器用
SQL> select 1+2 from dual;
--查看序列值
SQL> create sequence aaa increment by 1 start with 1;
SQL> select aaa.nextval from dual;

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved