Oracle學習3 dual詳解

2021-08-13 20:24:03 字數 1834 閱讀 4576

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 求在不同部門薪水最高的雇員的資訊 錯誤!因為查詢的結果是工資是在所有部門下的最高工資範圍中,就是說存在一種結果 同一...