Oracle對象教程:視圖(View)創(chuàng)建使用
最新學(xué)訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯(lián)系在線老師,甲骨文官方認證,報名從速!
我要咨詢Oracle對象教程:視圖(View)創(chuàng)建使用,視圖(View)實際上是一張或者多張表上的預(yù)定義查詢,這些表稱為基表。從視圖中查詢信息與從表中查詢信息的方法完全相同。只需要簡單的SELECT…FROM即可。
視圖具有以下優(yōu)點:
1. 可以限制用戶只能通過視圖檢索數(shù)據(jù)。這樣就可以對最終用戶屏蔽建表時底層的基表。
2. 可以將復(fù)雜的查詢保存為視圖。可以對最終用戶屏蔽一定的復(fù)雜性。
3. 限制某個視圖只能訪問基表中的部分列或者部分行的特定數(shù)據(jù)。這樣可以實現(xiàn)一定的安全性。
4. 從多張基表中按一定的業(yè)務(wù)邏輯抽出用戶關(guān)心的部分,形成一張?zhí)摂M表。
語法結(jié)構(gòu):創(chuàng)建視圖
CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW view_name AS SELECT查詢 [WITH READ ONLY CONSTRAINT] |
語法解析:
1. OR REPLACE:如果視圖已經(jīng)存在,則替換舊視圖。
2. FORCE:即使基表不存在,也可以創(chuàng)建該視圖,但是該視圖不能正常使用,當(dāng)基表創(chuàng)建成功后,視圖才能正常使用。
3. NOFORCE:如果基表不存在,無法創(chuàng)建視圖,該項是默認選項。
4. WITH READ ONLY:默認可以通過視圖對基表執(zhí)行增刪改操作,但是有很多在基表上的限制(比如:基表中某列不能為空,但是該列沒有出現(xiàn)在視圖中,則不能通過視圖執(zhí)行insert操作),WITH READ ONLY說明視圖是只讀視圖,不能通過該視圖進行增刪改操作。現(xiàn)實開發(fā)中,基本上不通過視圖對表中的數(shù)據(jù)進行增刪改操作。
案例3:基于EMP表和DEPT表創(chuàng)建視圖
代碼演示:視圖
SQL> CREATE OR REPLACE VIEW EMPDETAIL 2 AS 3 SELECT
EMPNO,ENAME,JOB,HIREDATE,EMP.DEPTNO,DNAME 4 FROM EMP JOIN DEPT ON
EMP.DEPTNO=DEPT.DEPTNO 5 WITH READ ONLY 6 /
VIEW CREATED
SQL> SELECT * FROM EMPDETAIL; ①
14 ROWS SELECTED |
代碼解析:
① 對視圖可以像表一樣進行查詢。該視圖中隱藏了員工的工資。
刪除視圖可以使用“DROP VIEW 視圖名稱”,刪除視圖不會影響基表的數(shù)據(jù)。
- 陳衛(wèi)星-老師CUUG金牌講師
- 陳老師 CUUG金牌講師 精通Oracle管理、備份恢復(fù)、性能優(yōu)化 11年Ora...[詳細了解老師]
