(8)mysql中的視圖,mysql中視圖

來源:互聯網
上載者:User

(8)mysql中的視圖,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 asselect t1.sid,t1.username,t2.departmentfrom 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命令的時候不僅顯示表名還顯示視圖名稱。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.