程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> (8)mysql中的視圖

(8)mysql中的視圖

編輯:MySQL綜合教程

(8)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;

創建視圖<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxjb2RlIGNsYXNzPQ=="language-sql hljs ">說明:

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. 下一頁:
Copyright © 程式師世界 All Rights Reserved