MySQL檢視入門淺析
一. 什麼是檢視
檢視是一種虛擬存在的表,行和列資料來自,定義檢視的查詢中使用的表,並且是在使用檢視時動態生成的。優勢有:
簡單: 使用檢視的使用者完全不需要關心後面對應的表的結構,關聯條件,篩選條件。
安全:使用檢視的使用者只能訪問他們被允許查詢的結果集。
資料獨立: 源表增加列對檢視沒有影響,源表修改列名,則通過修改檢視 對應好源表的列名來解決,不會造成對訪問者的影響。
1.1 建立檢視的操作
-- 建立檢視
CREATE OR REPLACE VIEW view_city
AS
SELECT * FROM city;
-- 查詢檢視
SELECT * FROM view_city;
1.2 修改檢視
-- 修改檢視
ALTER VIEW view_city
AS
SELECT cityname FROM city;
1.3 限制
檢視一般只是用來做查詢使用,如果要對檢視做修改有如下限制不能更新:
包含關鍵字 聚合函式(sum,min,max,count等),distinct,group by , having,union ,union all。
常量檢視。
select 中包含子查詢。
jion。
from 一個不能更新的檢視。
where 字句的子查詢引用了from字句的表。
LOCAL 是隻要滿足本檢視的條件就可以更新, CASCADED 則是必須滿足所有針對該檢視的所有檢視的條件才可以更新, 如果沒有明確是LOCAL 還是CASCADED,則預設是CASCADED,由於檢視基本不做修改,這裡就不在演示。
-- local與CASCADED 語法
CREATE OR REPLACE VIEW view_city
AS
SELECT * FROM city;
-- with(local | CASCADED) CHECK OPTION;
1.4 刪除檢視
drop view view_city;
1.5 檢視檢視
-- 檢視檢視的定義
SHOW CREATE VIEW view_city
-- 檢視檢視的定義
SELECT * FROM information_schema.views WHERE table_name = 'view_city'
Linux公社的RSS地址 : ofollow,noindex" target="_blank">https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址: https://www.linuxidc.com/Linux/2018-09/154348.htm