Oracle創(chuàng)建視圖的語法
Oracle創(chuàng)建視圖的語法非常重要,因?yàn)?a >Oracle創(chuàng)建視圖使我們最常用的操作之一,在學(xué)習(xí)Oracle創(chuàng)建視圖的語法之前,先讓我們了解一下什么是視圖。
視圖是基于一個(gè)表或多個(gè)表或視圖的邏輯表,本身不包含數(shù)據(jù),通過它可以對表里面的數(shù)據(jù)進(jìn)行查詢和修改。視圖基于的表稱為基表。
視圖是存儲(chǔ)在數(shù)據(jù)字典里的一條select語句。 通過Oracle創(chuàng)建視圖可以提取數(shù)據(jù)的邏輯上的集合或組合。
視圖的優(yōu)點(diǎn):
1.對數(shù)據(jù)庫的訪問,因?yàn)橐晥D可以有選擇性的選取數(shù)據(jù)庫里的一部分。
2.用戶通過簡單的查詢可以從復(fù)雜查詢中得到結(jié)果。
3.維護(hù)數(shù)據(jù)的獨(dú)立性,試圖可從多個(gè)表檢索數(shù)據(jù)。
4.對于相同的數(shù)據(jù)可產(chǎn)生不同的視圖。
視圖分為簡單視圖和復(fù)雜視圖
視圖的創(chuàng)建:
- CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
- [(alias[, alias]...)]
- AS subquery
- [WITH CHECK OPTION [CONSTRAINT constraint]]
- [WITH READ ONLY]
其中:
OR REPLACE :若所創(chuàng)建的試圖已經(jīng)存在,ORACLE自動(dòng)重建該視圖;
FORCE :不管基表是否存在ORACLE都會(huì)自動(dòng)創(chuàng)建該視圖;
NOFORCE :只有基表都存在ORACLE才會(huì)創(chuàng)建該視圖:
alias :為視圖產(chǎn)生的列定義的別名;
subquery :一條完整的SELECT語句,可以在該語句中定義別名;
WITH CHECK OPTION :
插入或修改的數(shù)據(jù)行必須滿足視圖定義的約束;
WITH READ ONLY :
該視圖上不能進(jìn)行任何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;
【編輯推薦】