Oracle數據庫11_視圖操作

1.什麼是視圖

視圖是一種虛表;

視圖建立在已有表的基礎上,視圖來與建立的這些表稱爲基表。

向視圖提供數據內容的語句爲select 語句,可以將視圖理解爲存儲起來的select 語句。

視圖向用戶提供基表數據的另一種表現形式。
[外鏈圖片轉存失敗(img-I9rbruqe-1567308581238)(C:\Users\zhangzhenquan\AppData\Roaming\Typora\typora-user-images\1567143565129.png)]

2.視圖的優點

(1)簡化複雜查詢

(2)限制數據訪問

(3)提供數據的相互獨立

(4)同樣的數據,可以有不同的顯示方式。

注意:視圖不能提高性能。

3.簡單視圖和複雜視圖

在這裏插入圖片描述
【注意】:不建議通過視圖對錶進行修改

4.視圖操作

(1)創建視圖
創建用create view

在這裏插入圖片描述

【示例1】

在這裏插入圖片描述

【注意】

force: 子查詢不一定存在

noforce:子查詢存在(默認)

with read only:只能做查詢操作

子查詢可以是複雜的select語句

創建視圖是在子查詢中可以給列定義別名,選擇視圖中的列時應使用別名。

【示例2:別名as】

[外鏈圖片轉存失敗(img-TXlPAWEK-1567308581239)(C:\Users\zhangzhenquan\AppData\Roaming\Typora\typora-user-images\1567145025516.png)]

(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錯誤。

[外鏈圖片轉存失敗(img-gcEMUuwS-1567308581241)(C:\Users\zhangzhenquan\AppData\Roaming\Typora\typora-user-images\1567146541073.png)]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章