oracle中有乙個單行單列的虛擬表dual,引入該錶的目的是為了符合語法。
dual表是oracle與資料字典一起自動建立的乙個表。
oracle有內部邏輯保證dual表中永遠只有一條資料。
oracle的select語法的限制為:
select * | [column1 [as alias1], column2 [as alias2]] from
table
因而,如果沒有表名就無法進行查詢,於是引入了乙個虛擬表dual。
dual:
adj. 雙的,兩部分的,二體的,二重的;
n. 雙數; 雙數詞;
我們來看下dual表的結構和資料。
在命令視窗下:
sql> desc dual;
name
type
nullable
default
comments--
----
----
----
----
----
----
----
----
----
-dummy
varchar2(1)
y
sql> select * from dual;
dummy
-----
x
可以看出
dual表是單行單列的表;
這個表只有1列:dummy,資料型別為verchar2(1),dual表中只有乙個資料』x』。
(dummy有傀儡、樣品的意思)
如下:
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
10*10
from dual;
如下是dual的建表語句:
-- create table
create
table sys.dual
( dummy varchar2(1)
)tablespace system
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
( initial 16k
next
1m minextents 1
maxextents unlimited
);-- grant/revoke object privileges
grant
select
on sys.dual to
public
with
grant
option;
oracle中的dual詳解
對於oracle的dual,有以下幾點我們需要明確 第一點dual不是縮寫詞而是完整的單詞。dual名詞意思是對數,做形容詞時是指二重的,二元的。第二點oracle中的dual表是乙個單行單列的虛擬表。第三點dual表是oracle與資料字典一起自動建立的乙個表,這個表只有1列dummy,資料型別為...
oracle中dual的一些學習了解
進了專案組才正式接觸oracle,以前的都是用的mysql,先前以為dual表是資料庫中的開發人員建立的普通表,當時還傻乎乎的去找,後來才查詢實質了解是怎麼回事,下面是一些參考和總結。dual是乙個虛擬表,用來構成select的語法規則,oracle保證dual裡面永遠只有一條記錄,可以用它來做很多...
oracle學習筆記3
1.子查詢 select ename,sal,deptno from emp where sal in select max sal from emp group by deptno 求在不同部門薪水最高的雇員的資訊 錯誤!因為查詢的結果是工資是在所有部門下的最高工資範圍中,就是說存在一種結果 同一...