Mysql資料 檢視
一.簡介
檢視是資料庫中的一個虛擬的表是一個虛擬表,其內容由查詢定義。同真實的表一樣,檢視包含一系列帶有名稱的列和行資料。
但是,檢視並不在資料庫中以儲存的資料值集形式存在。行和列資料來自由定義檢視的查詢所引用的表,並且在引用檢視時動態生成。簡單的來說檢視是由其定義結果組成的表。
二.例子
有一個表s1,裡面儲存了id,name,age。
從中找出age欄位大於23的行。
建立結構
create view 檢視名 as select * from 表名 where條件(可以不寫);
建立一個名為one的檢視,條件是age大於23的
create view one as select * from s1 where age > 23;
檢視這個檢視,發現其實就是查詢條件別名叫檢視。
後面的條件什麼的,其實就是在最初的查詢條件的基礎上做查詢。
三.好處
1.查詢效能提高。當多表查詢的時候,就可以將前面的操作固定化,相當於查詢語句簡寫了。
2.安全性。一般是這樣做的:建立一個檢視,定義好該檢視所操作的資料。之後將使用者許可權與檢視繫結。這樣的方式是使用到了一個特性:grant語句可以針對檢視進行授予許可權。
3.有靈活性的功能需求後,需要改動表的結構而導致工作量比較大。那麼可以使用虛擬表的形式達到少修改的效果。這是在實際開發中比較有用的
4.複雜的查詢需求。可以進行問題分解,然後將建立多個檢視獲取資料。將檢視聯合起來就能得到需要的結果了。
四.工作機制
當呼叫檢視的時候,才會執行檢視中的sql,進行取資料操作。
檢視的內容沒有儲存,而是在檢視被引用的時候才派生出資料。這樣不會佔用空間,由於是即時引用,檢視的內容總是與真實表的內容是一致的。
檢視這樣設計有什麼好處?節省空間,內容是總是一致的話,那麼我們不需要維護檢視的內容,維護好真實表的內容,就可以保證檢視的完整性了。
本文版權歸作者所有,歡迎轉載,請務必新增原文連結。