探索oracle dual表
探索oracle dual表
dual表與資料字典是由oracle資料庫一起自動建立的。dual存在於sys模式中,但是所有的使用者都可以
使用該表。
dual表的結構:
SQL> desc dual
Name Type Nullable Default Comments
----- ----------- -------- ------- --------
DUMMY VARCHAR2(1) Y
dual表中只有一列dummy,型別是varchar2。只能包含一條記錄,值是X。
SQL> select * from dual;
DUMMY
-----
X
下面是dual介紹dual表的用途
用作查詢當前登入使用者名稱:
SQL> select user from dual;
USER
------------------------------
HR
用作系統日期查詢:
SQL> select sysdate from dual;
SYSDATE
-----------
2012/2/13 0
用作表示式求值:
SQL> select 4*5+10 from dual;
4*5+10
----------
30
用作SQL函式的測試:
SQL> select length('oracle database') from dual;
LENGTH('ORACLEDATABASE')
------------------------
15
dual表主要用來返回一個資訊。常用於確定表示式的值,或者函式執行的效果。
dual表一次只能返回一條記錄。
dual表可以一次返回多個值:
SQL> select 4*5+10,3*6 from dual;
4*5+10 3*6
---------- ----------
30 18
SQL> select concat('oracle','database11g'),length('oracledatase11g')
2 from dual;
CONCAT('ORACLE','DATABASE11G') LENGTH('ORACLEDATASE11G')
------------------------------ -------------------------
oracledatabase11g 15
dual表用於求解表示式的值是可以使用變數:
SQL> select &var+4 from dual;
輸入 var 的值: 4
原值 1: select &var+4 from dual
新值 1: select 4+4 from dual
4+4
----------
8
sysy與system 使用者採用權對dual表進行insert,但是dual會記錄這些插入的值但是查詢的時候只有顯示X:
SQL> conn sys as sysdba
輸入口令:
已連線。
SQL> select * from dual;
DU
--
X
SQL> insert into dual values('I');
已建立 1 行。
SQL> insert into dual values('I');
已建立 1 行。
SQL> select * from dual;
DU
--
X
dual表中的值還是X。
下面是一個有意思的例子:
SQL> delete from dual;
已刪除 1 行。
SQL> select * from dual;
DU
--
I
SQL> select 4*5 from dual;
4*5
----------
20
dual表中的記錄是可以被刪除的,但是會自動的變成一個新插入的值。這裡是I。
並且不會影響dual表的功能.
SQL> delete from dual;
已刪除 1 行。
SQL> delete from dual;
已刪除 1 行。
SQL> delete from dual;
已刪除 1 行。
SQL> select * from dual;
DU
--
I
SQL> delete from dual;
已刪除 1 行。
.
.
.
SQL> select * from dual;
未選定行
SQL> select upper('oracle') from dual;
UPPER('ORACL
------------
ORACLE
剛才我們插入了多個I,現在全部刪除掉.直到沒有記錄。但是照樣不會影響dual表的功能。
從上面的實驗可以看出dual中的記錄類似一個佇列,X在最上面,其他插入的值存放在
後面,並且oracle控制一次只顯示一個值,當把X值刪除以後,後面的記錄就頂上來了。這裡
是I。
dual表在計算表示式的值時,函式測試時,應該也是把這些結果存放在dual表中的,並且
把這些值置於X值之前,oracle控制顯示當前的查詢(或者計算值)。等這些查詢,求值,測試
一結束。又刪除掉這些值。所有我們又只看到X。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-716100/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 分割槽表探索MySql
- Oracle建表Oracle
- Oracle 外部表Oracle
- oracle的表Oracle
- DualGNN: Dual Graph Neural Network for Multimedia RecommendationGNN
- Oracle redo日誌內容探索(一)Oracle Redo
- 前端外掛之Bootstrap Dual Listbox使用前端boot
- Perceptron, Support Vector Machine and Dual Optimization Problem (3)Mac
- Perceptron, Support Vector Machine and Dual Optimization Problem (1)Mac
- Perceptron, Support Vector Machine and Dual Optimization Problem (2)Mac
- ORACLE 備份表Oracle
- Oracle表空間Oracle
- oracle 表空間Oracle
- oracle 表移動表空間Oracle
- Oracle表移動表空間Oracle
- Oracle redo日誌內容探索之二Oracle Redo
- oracle將表配置為分割槽表Oracle
- oracle 普通表-分割槽表改造流程Oracle
- Oracle OCP(20):建立表Oracle
- Oracle OCP(21):管理表Oracle
- ORACLE物件型別表Oracle物件型別
- 增加oracle表空間Oracle
- oracle壓縮表(二)Oracle
- oracle壓縮表(一)Oracle
- oracle temp 表空間Oracle
- Oracle 巢狀表(轉)Oracle巢狀
- oracle 的表壓縮Oracle
- 探索資料字典,提高自學習Oracle能力Oracle
- Oracle新建使用者、表空間、表Oracle
- oracle分割槽表和分割槽表exchangeOracle
- Oracle資料表碎片整理Oracle
- ORACLE分割槽表梳理系列Oracle
- ORACLE臨時表總結Oracle
- Oracle大表快速建立索引Oracle索引
- oracle 例項表查詢Oracle
- oracle表空間的整理Oracle
- Oracle 批量建表空間Oracle
- oracle表複雜查詢Oracle
- Oracle清理SYSAUX表空間OracleUX