1、視圖概念
是從一個或多個表中導出來的表,它是一種虛擬存在的表,表的結構和數據都依賴于基本表
應用場景:
- 多個地方用到同樣的查詢結果
- 該查詢結果用到復雜的select語句
視圖優點:
- 簡化查詢語句:簡化用戶的查詢操作,使查詢更加快捷。
- 安全性:更方便的進行權限控制。
- 邏輯數據獨立性:屏蔽真實表結構變化帶來的影響。
2、創建視圖
a、語法
CREATE [OR REPLACE]
VIEW view_name [(column_list)]
AS select_statement
說明:
- CREATE:表示創建視圖的關鍵字。
- OR REPLACE:可選,表示替換已有視圖。
- view_name:表示要創建的視圖名稱。
- column_list:可選,用于指定視圖中的各個列的名稱。(省略則與SELECT語句查詢的列相同)
- AS:表示視圖要執行的操作。
- select_statement:一個完整的查詢語句,表示從某些表或視圖中查出某些滿足條件的記錄,將這些記錄導入視圖中。
例:創建視圖,用于查看未登記生日的員工姓名,職稱,工資和地址
3、修改視圖
a、使用create or place
例:修改view_showEmp,將列名修改為ename,rname,salary,addr
b、使用alter
語法:
ALTER VIEW view_name [(column_list)]
AS SELECT_statement
例:修改view_showEmp,將列名修改為ename,rname,salary,addr
ALTER VIEW view_showEmp(ename,rname,salary,addr)
AS SELECT empname,rankname,salary,address
FROM employee e,rank r
WHERE e.rankid=r.rankid
AND birthday is null;
4、使用視圖
例:查詢未登錄生日的員工姓名(從view_showEmp視圖中查詢ename)
SELECT ename -- 使用定義視圖時重命名的列名,不能使用視圖中未出現的列
from view_showemp;
例:使用視圖數據更新表,將employee表中未登錄生日的員工,生日更新為當天
5、刪除視圖
DROP VIEW 視圖名;