<a href="http://www.php.cn/code/8708.html" target="_blank">視圖</a>
是一種虛擬存在的表,對於使用視圖的使用者來說,基本上跟使用正常的表一樣。視圖在資料庫中是不存在的,視圖中的資料是動態產生的。
視圖相對於普通表的優勢:
簡單:使用視圖不需要關心後面的表的對應結構條件,對於使用者來說,視圖是過濾好的結果集。
資料獨立:一旦視圖結構確定,對實際表的改變對視圖使用者是沒有影響的。
視圖操作分為建立視圖
、修改視圖
、<a href="http://www.php.cn/php/php-tp-remove.html" target="_blank">刪除</a>視圖
、檢視視圖定義
。
#创建视图 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指令的時候不僅顯示表名還顯示視圖名稱。
【相關推薦】
2. MySQL最新手冊教學
#3. 資料庫設計那些事
以上是介紹mysql中視圖的概念及操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!