介紹mysql中視圖的概念及操作

概念

??視圖是一種虛擬存在的表,對于視圖的用戶來說,基本上跟使用正常的表一樣。視圖在數據庫中是不存在的,視圖中的數據是動態生成的。
??視圖相對于普通表的優勢:

  • 簡單:使用視圖不需要關心后面的表的對應結構條件,對于使用者來說,視圖是過濾好的結果集。

  • 視圖:使用者只能訪問他們被允許視圖的結果集。

  • 數據獨立:一旦視圖結構確定,對實際表的改變對視圖使用者是沒有影響的。

視圖操作

視圖操作分為創建視圖、修改視圖、視圖視圖、查看視圖定義。

創建視圖,修改視圖

#創建視圖  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;

介紹mysql中視圖的概念及操作

創建視圖

說明:

  • from關鍵字后面不能包含子查詢;

  • 不能更新的視圖:包含聚合函數/group/distinct/having/union,常量視圖,select中包含子查詢,jion,from一個不能更新的視圖,where中子查詢引用from子句中的表。

  • with[cascaded|local] check option 絕對是否允許更新數據使記錄不再滿足視圖條件。其中local-只需滿足本視圖條件就可以更新、cascaded-必須滿足所有針對該視圖的所有視圖的條件才可以更新。默認為cascaded。

查看視圖數據

同普通表

select?*?from?view_test;

介紹mysql中視圖的概念及操作

查看視圖數據

刪除視圖

#刪除視圖  drop?view?[if?exists]?view_name?[,view_name2]...[restrict|cascade]    #舉例  drop?view?view_test;

查看視圖狀態

從MySQL5.1開始,使用show tables命令的時候不僅顯示表名還顯示視圖名稱。

【相關推薦】

1.?視圖

2.?視圖

3.?視圖

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享