什么是視圖
視圖是從一個或多個表中導出來的表,是一種虛擬存在的表。
視圖就像一個窗口,通過這個窗口可以看到系統專門提供的數據。
這樣,用戶可以不用看到整個數據庫中的數據,而之關心對自己有用的數據。
數據庫中只存放了視圖的定義,而沒有存放視圖中的數據,這些數據存放在原來的表中。
使用視圖查詢數據時,數據庫系統會從原來的表中取出對應的數據。
視圖中的數據依賴于原來表中的數據,一旦表中數據發生改變,顯示在視圖中的數據也會發生改變。
視圖的作用
1.使操作簡單化,可以對經常使用的查詢定義一個視圖,使用戶不必為同樣的查詢操作指定條件
2.增加數據的安全性,通過視圖,用戶只能查詢和修改指定的數據。
3.提高表的邏輯獨立性,視圖可以屏蔽原有表結構變化帶來的影響。
總而言之,使用視圖的大部分情況是為了保障數據安全性,提高查詢效率
1、創建視圖的語法:
CREATE [OR REPLACE] VIEW
view_name
AS select_statement
[WITH CHECK OPTION]
2、示例
CREATE VIEW v_emp AS
SELECT? * from emp
where emp_dpt_id = 1
3、可更新的視圖
默認建立的視圖是可以更新的,不過視圖很少用來更新
update v_emp set emp_dpt_id = 2 where emp_id = 1;
4、限制更新視圖
drop view v_emp;
CREATE VIEW v_emp AS
SELECT? * from emp
where emp_dpt_id = 1
WITH CHECK OPTION;
update emp set emp_dpt_id = 1 where emp_id = 1;