認識ORACLE中的dual表

2021-09-26 14:04:49 字數 1273 閱讀 5724

dual表是乙個虛擬表,用來構成select的語法規則,oracle保證dual裡面永遠只有一條記錄。常用在沒有目標表的select語句塊中。

活用dual表的一些常見用法,可以使你的sql更容易形成預期的結構:

連線兩個字串

結果:使用nvl函式

結果:這些用nvl判斷過後的值可以直接用來給別的insert或者update操作;

例如:insert into table1 ( a1, a2, a3, a4 )

(select nvl(『b1』,『test1』), nvl(『b2』, 『test2』), nvl(『b3』, 『test3』), nvl(『b4』, 『test4』) from dual);

如果不了解nvl函式的用法,本文後面會有介紹。
檢視當前使用者select user from dual;

這裡的user是當前資料庫的管理者。
查詢當前日期時間結果:用來作簡單的查詢日期的操作;

進行計算操作

select 5*6 from dual;

select 9-3 from dual;

sql中想要一些計算過後的值作為條件,就可以使用這種寫法。
結論:從上面不難看出,dual表僅僅是一張虛擬表,用來構成select的語法規則,讓sql能夠正常執行。mysql中也存在dual表,不過與oracle略有不同,這裡不作詳細介紹了,有興趣的童鞋自己檢視一下資料吧。簡單說一下nvl的用法:1. nvl(』』,'test1 』 )

nvl函式包含兩個引數,如果第乙個引數不為空或者null,則取第乙個引數為值,否則取第二個引數為值;

2.nvl2(a1, a2, a3)
nvl2函式包含3個引數,如果第乙個引數為空,則取第二個引數為值;如果第乙個引數不為空,則取第三個引數為值;

3.nullif(a1, a2)
nullif函式包含2個引數,如果兩個引數相等,則值為空(null);如果兩個引數不相等,則取第乙個引數為值。

Oracle中dual表的用途

dual是乙個虛擬表,用來構成select的語法規則,oracle保證dual裡面永遠只有一條記錄。我們可以用它來做很多事情,如下 1 檢視當前使用者,可以在 sql plus中執行下面語句 select user from dual 2 用來呼叫系統函式 select to char sysdat...

oracle中dual表的用法

dual是乙個虛擬表,用來構成select的語法規則,oracle保證dual裡面永遠只有一條記錄。我們可以用它來做很多事情,如下 1 檢視當前使用者,可以在 sql plus中執行下面語句 select user from dual 2 用來呼叫系統函式 select to char sysdat...

oracle中奇妙的dual表

dual是乙個虛擬表,用來構成select的語法規則,oracle保證dual裡面永遠只有一條記錄。我們可以用它來做很多事情,如下 1 檢視當前使用者,可以在 sql plus中執行下面語句 select user from dual 2 用來呼叫系統函式 select to char sysdat...