1. 創建視圖
CREATE VIEW 視圖名 AS 查詢語句 [WITH CHECK OPTION]
- 這里WITH CHECK OPTION約束是要求插入或者更新要滿足查詢語句where后面的條件
CREATE VIEW test AS SELECT * FROM test_db WHERE 查詢條件 WITH CHECK OPTION
這個test視圖在插入數據或者更新數據時便要求滿足查詢條件的記錄才能插入
2. 刪除視圖
DROP VIEW [IF EXIST] 視圖名 [視圖名] ...
3. 視圖的更新的限制
- 主鍵和所有NULL列如果沒有出現在視圖中,視圖不允許更新
- 子查詢中如果出現分組查詢,聚合函數,那就不允許更新
- 更新時必須滿足查詢本來數據表中的約束,不滿足約束的更新或者插入都是不允許的
- 在創建視圖時使用WITH CHECK OPTION選項的話,那么在插入時必須滿足查詢的條件才允許插入數據
這個是在mysql中的結果
- 創建一個視圖,后面where跟隨一個查詢條件,WITH CHECK OPTION要求插入該視圖的數據必須滿足該查詢條件
mysql> create view author_test AS SELECT id,name,address FROM author where id = 32 WITH CHECK OPTION;
Query OK, 0 rows affected (0.01 sec)
- 這個是插入數據的結果
mysql> insert into author_test values(12,'gafv','gfgd');
1369 - CHECK OPTION failed 'mysql.author_test'
4. 查看視圖
show table status where comment = 'view';
SHOW FULL TABLES WHERE Table_type = 'VIEW'