目錄
Oracle數據庫中存在一個特別的表dual,它是一個虛擬表,用來構成select的語法規則。Oracle對dual虛表的操作做了一些特別的處理,保證dual表里面永遠只有一條記錄。dual虛表存在給程序員帶來了一些方便。
一、測試dual虛表
dual虛表只有一個字段,有一條記錄。
1、dual虛表的結構
2、查詢dual虛表中的記錄
3、對dual虛表做增、刪、改操作
普通用戶對dual虛表只有查詢權限,沒有增、刪、改的權限。DBA對dual虛表有全部的權限,但是,我不建議采用DBA對dual虛表進行操作,沒什么意義,大家可以玩玩,但是,某些操作(刪除表)可能造成數據庫無法啟動,請慎重,一定不能在生產環境中折騰。
二、dual虛表的用途
利用dual虛表可以調用Oracle的函數和獲取序列生成器的值,雖然還可以用來做一些其它的事情,比如說計算,但是對程序員來說利用dual虛表做計算毫無意義。
1、執行Oracle的函數
1)查看當前登錄用戶。
2、獲取數據庫的日期時間
2、獲取序列生成器的值
create sequence SEQ_FREECPLUS; -- 創建序列生成器SEQ_FREECPLUS。
select SEQ_FREECPLUS.nextval from dual; -- 從序列SEQ_FREECPLUS獲取下一個值。
select SEQ_FREECPLUS.currval from dual; -- 從序列SEQ_FREECPLUS獲取當前值。
細心的讀者可能會思考一個問題,在insert和update語句中,可以把序列生成器直接填寫到SQL語句中,不需要dual虛表。不一定,在實際開發中,可能要把序列生成器的值取出來,比如說參與運算。
三、版權聲明
C語言技術網原創文章,轉載請說明文章的來源、作者和原文的鏈接。
來源:C語言技術網(www.freecplus.net)
作者:碼農有道
如果文章有錯別字,或者內容有錯誤,或其他的建議和意見,請您留言指正,非常感謝!!!