視圖可以被理解爲是數據庫中一張虛擬的表。視圖基於一個表或多個表,視圖本身並不包含任何數據。當基表的數據發生改變時,視圖的數據同樣會發生改變。
1.創建單表視圖
CREATE OR REPLACE VIEW VW_STU
AS
SELECT * FROM STUDENT
WITH READ ONLY;
OR REPLACE表示新建視圖可以覆蓋原有的同名視圖。
WITH READ ONLY表示設置視圖只讀。
2.利用視圖向基表插入數據
由於視圖本身並不包含任何數據,所以當向視圖插入數據時,實際上是向它的基表插入數據。
因爲向視圖插入數據,就是相當於對基表進行插入,所以基表的約束條件此時同樣起作用
可以看到,由於視圖中沒有student_number,但基表中要求student_number不能爲null,所以此時無法對基表進行插入。
3.對視圖進行修改和刪除數據
對於單表視圖,對數據的刪除操作會對基表產生影響。
可以看出,雖然vw_stu只有student_name,但是對它進行數據的刪除操作,對基表產生了影響。
4.創建多表視圖
5.對多表視圖數據進行修改
6.對多表視圖數據進行刪除
雖然可以通過對視圖進行操作來影響基表,但是一般不建議使用這種方法。在大多數情況下,視圖應該被設爲只讀。