概念
??視圖是一種虛擬存在的表,對于視圖的用戶來說,基本上跟使用正常的表一樣。視圖在數據庫中是不存在的,視圖中的數據是動態生成的。
??視圖相對于普通表的優勢:
-
簡單:使用視圖不需要關心后面的表的對應結構條件,對于使用者來說,視圖是過濾好的結果集。
-
數據獨立:一旦視圖結構確定,對實際表的改變對視圖使用者是沒有影響的。
視圖操作
視圖操作分為創建視圖、修改視圖、視圖視圖、查看視圖定義。
創建視圖,修改視圖
#創建視圖 create?[or?replace]?[algorithm={undefined|merge|temptable}] view?view_name[(column_list)] as?select_statement [with[cascaded|local]?check?option] #?修改視圖 alter?[algorithm={undefined|merge|temptable}] view?view_name[(column_list)] as?select_statement [with[cascaded|local]?check?option]
舉例:
create?view?view_test?as select?t1.sid,t1.username,t2.department from?test1?t1?left?join?test2?t2?on?t1.sid=t2.sid;
創建視圖
說明:
-
from關鍵字后面不能包含子查詢;
-
不能更新的視圖:包含聚合函數/group/distinct/having/union,常量視圖,select中包含子查詢,jion,from一個不能更新的視圖,where中子查詢引用from子句中的表。
-
with[cascaded|local] check option 絕對是否允許更新數據使記錄不再滿足視圖條件。其中local-只需滿足本視圖條件就可以更新、cascaded-必須滿足所有針對該視圖的所有視圖的條件才可以更新。默認為cascaded。
查看視圖數據
同普通表
select?*?from?view_test;
查看視圖數據
刪除視圖
#刪除視圖 drop?view?[if?exists]?view_name?[,view_name2]...[restrict|cascade] #舉例 drop?view?view_test;
查看視圖狀態
從MySQL5.1開始,使用show tables命令的時候不僅顯示表名還顯示視圖名稱。
【相關推薦】
1.?視圖
2.?視圖
3.?視圖
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END