什麼是MySQL視圖 視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖並不在數據庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,並且在引用視圖時動態生成。對其中所引用的基礎表來說,視圖的作用類似於篩選。定義視圖的篩選可以來自當前或其它數據庫的一個或多個表,或者其它視圖。通過視圖進行查詢沒有任何限制,通過它們進行數據修改時的限制也很少。 視圖是存儲在數據庫中的查詢的sql 語句,它主要出於兩種原因:安全原因, 視圖可以隱藏一些數據,如:社會保險基金表,可以用視圖只顯示姓名,地址,而不顯示社會保險號和工資數等,另一原因是可使復雜的查詢易於理解和使用。 所以視圖不是真實存在的基礎表而是一張虛表,視圖所對應的數據並不實際地以視圖結構存儲在數據庫中,而是存儲在視圖所引用的表中。視圖一經定義便存儲在數據庫中,與其相對應的數據並沒有像表那樣又在數據庫中再存儲一份,通過視圖看到的數據只是存放在基本表中的數據。對視圖的操作與對表的操作一樣,可以對其進行查詢、修改(有一定的限制)、刪除。當對通過視圖看到的數據進行修改時,相應的基本表的數據也要發生變化,同時,若基本表的數據發生變化,則這種變化也可以自動地反映到視圖中。 視圖有很多優點,主要表現在: •視點集中 •簡化操作 •定制數據 •合並分割數據 •安全性 如何創建一個視圖 create view 視圖名稱 as select * from 表明 where 條件; 如:create view v_t1 as select * from t1 where id>4 and id<11; 查看視圖: show tables; 這時候你會發現數據庫中多了一張表,這就是視圖表,並不是一張真正的表而是一張虛擬表,同樣你也可以對視圖表進行增、刪、查、改。 刪除視圖: drop 視圖名稱; 視圖表和數據表具有依賴性,一旦主表被刪除,查詢視圖表的時候就會報錯