1.什麼是視圖
視圖是一種虛表;
視圖建立在已有表的基礎上,視圖來與建立的這些表稱爲基表。
向視圖提供數據內容的語句爲select 語句,可以將視圖理解爲存儲起來的select 語句。
視圖向用戶提供基表數據的另一種表現形式。
2.視圖的優點
(1)簡化複雜查詢
(2)限制數據訪問
(3)提供數據的相互獨立
(4)同樣的數據,可以有不同的顯示方式。
注意:視圖不能提高性能。
3.簡單視圖和複雜視圖
【注意】:不建議通過視圖對錶進行修改
4.視圖操作
(1)創建視圖
創建用create view
【示例1】
【注意】
force: 子查詢不一定存在
noforce:子查詢存在(默認)
with read only:只能做查詢操作
子查詢可以是複雜的select語句
創建視圖是在子查詢中可以給列定義別名,選擇視圖中的列時應使用別名。
【示例2:別名as】
(2)創建複雜視圖
【舉例】查詢各個部門的最高工資、最低工資、平均工資
(3)查詢視圖
查詢用select語句
(4)修改視圖
修改視圖使用create or replace view
create view 子句中各列的別名應和子查詢中各列相對應。
(5)刪除視圖
刪除用drop view
刪除視圖知識刪除視圖的定義,並不會刪除基表的數據。
5.視圖中使用DML
可以在簡單視圖中執行DML操作,
(1)當視圖定義中包含以下勻速注意時不能使用delete:
組函數
GROUP BY 子句
DISTINCT關鍵字
ROWNUM僞列
(2)當視圖定義中包含以下元素之一時不能使用update
組函數
GROUP BY 子句
DISTINCT關鍵字
ROWNUM僞列
列的定義爲表達式
(3)當視圖定義中包含以下元素之一時不能使用insert
組函數
GROUP BY 子句
DISTINCT關鍵字
ROWNUM僞列
列的定義爲表達式
表中非空的列在視圖定義中未包括
6.屏蔽DML操作
可以使用 WITH READ ONLY 選項屏蔽對視圖的DML操作
任何DML操作都會返回一個Oracal Server錯誤。