在Oracle數據庫內有一種特殊的表Dual。Dual表是Oracle中的一個實際存在的表,任何用戶均可讀取,常用在沒有目標表的Select中。Dual表由Oracle連同數據字典一同創建,所有的用戶都可以用名稱DUAL訪問該表。這個表里只有一列DUMMY,該列定義為VARCHAR2(1)類型,有一行值X。從DUAL表選擇數據常被用來通過select語句計算常數表達式,由於DUAL只有一行數據,所以常數只返回一次。
select
1
from
table
;
select
anycol(目的表集合中的任意一行)
from
table
;
-- (目的表集合中的任意一行)
select
*
from
table
上面這三條語句從作用上來說是沒有差別的,都是查看是否有記錄,一般是作條件查詢用的。
select 1 from 中的1是一常量(可以為任意數值),查到的所有行的值都是它,但從效率上來說,1>anycol>*,因為不用查字典表。
字典表(數據字典通常包括數據項\數據結構\數據流\數據存儲和處理過程五個部分。以Oracle數據庫字典為例:數據字典分為數據字典表和數據字典視圖)