Oracle創建視圖的語法非常重要,因為Oracle創建視圖使我們最常用的操作之一,在學習Oracle創建視圖的語法之前,先讓我們了解一下什麼是視圖。
視圖是基於一個表或多個表或視圖的邏輯表,本身不包含數據,通過它可以對表裡面的數據進行查詢和修改。視圖基於的表稱為基表。
視圖是存儲在數據字典裡的一條select語句。 通過Oracle創建視圖可以提取數據的邏輯上的集合或組合。
視圖的優點:
1.對數據庫的訪問,因為視圖可以有選擇性的選取數據庫裡的一部分。
2.用戶通過簡單的查詢可以從復雜查詢中得到結果。
3.維護數據的獨立性,試圖可從多個表檢索數據。
4.對於相同的數據可產生不同的視圖。
視圖分為簡單視圖和復雜視圖
視圖的創建:
- CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW vIEw_name
- [(alias[, alias]...)]
- AS subquery
- [WITH CHECK OPTION [CONSTRAINT constraint]]
- [WITH READ ONLY]
其中:
OR REPLACE :若所創建的試圖已經存在,Oracle自動重建該視圖;
FORCE :不管基表是否存在Oracle都會自動創建該視圖;
NOFORCE :只有基表都存在Oracle才會創建該視圖:
alias :為視圖產生的列定義的別名;
subquery :一條完整的SELECT語句,可以在該語句中定義別名;
WITH CHECK OPTION :
插入或修改的數據行必須滿足視圖定義的約束;
WITH READ ONLY :
該視圖上不能進行任何DML操作。
例如:
- CREATE OR REPLACE VIEW dept_sum_vw
- (name,minsal,maxsal,avgsal)
- AS SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal)
- FROM emp e,dept d
- WHERE e.deptno=d.deptno
- GROUP BY d.dname;