創建視圖語句:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name [(alias[, alias]...)] AS subquery [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY]
CREATE OR REPLACE VIEW new_V_a(視圖名) AS
SELECT *
FROM T_a(表名)
CREATE OR REPLACE VIEW new_V_a(視圖名) AS
SELECT * FROM T_a(表名)
UNION ALL
SELECT * FROM T_a
視圖的優點:
1.對數據庫的訪問,因為視圖可以有選擇性的選取數據庫里的一部分。
2.用戶通過簡單的查詢可以從復雜查詢中得到結果。
3.維護數據的獨立性,試圖可從多個表檢索數據。
4.對於相同的數據可產生不同的視圖。
視圖分為簡單視圖和復雜視圖:
1、簡單視圖只從單表里獲取數據,復雜視圖從多表;
2、簡單視圖不包含函數和數據組,復雜視圖包含;
3、簡單視圖可以實現DML操作,復雜視圖不可以。
語法解析:
OR REPLACE :若所創建的試圖已經存在,則替換舊視圖;
FORCE:不管基表是否存在ORACLE都會自動創建該視圖(即使基表不存在,也可以創建該視圖,但是該視圖不能正常使用,當基表創建成功后,視圖才能正常使用);
NOFORCE :如果基表不存在,無法創建視圖,該項是默認選項(只有基表都存在ORACLE才會創建該視圖)。
alias:為視圖產生的列定義的別名;
subquery :一條完整的SELECT語句,可以在該語句中定義別名;
WITH CHECK OPTION :插入或修改的數據行必須滿足視圖定義的約束;
WITH READ ONLY :默認可以通過視圖對基表執行增刪改操作,但是有很多在基表上的限制(比如:基表中某列不能為空,但是該列沒有出現在視圖中,則不能通過視圖執行insert操作),WITH READ ONLY說明視圖是只讀視圖,不能通過該視圖進行增刪改操作。現實開發中,基本上不通過視圖對表中的數據進行增刪改操作。