定義:本質就是一張虛擬表。從一個或多個表中結合查詢出來的結果集,做用和真實表同樣。可使用SELECT 語句查詢數據,也可使用INSERT,UPDATE,DELETE 來修改數據。mysql
優勢:1) 簡單化,數據所見即所得;2) 安全性,用戶只能查詢或修改他們所能見到獲得的數據;3) 邏輯獨立性,能夠屏蔽真實表結構變化帶來的影響sql
缺點:1) 性能相對較差,簡單的查詢也會變得稍顯複雜;2) 修改不方便,特別是複雜的聚合視圖基本沒法修改安全
特別強調性能
視圖建立示例code
-- 1.建立視圖語法 -- 語法:create view view_name as sql語句; create view v_user as select u.username,d.depname from user as u inner join dep d on u.pid = d.id; -- 2.使用視圖 -- 查詢 語法:select * from 視圖名; select * from v_user; -- 3.刪除視圖 -- 刪除語法:drop view 視圖名; drop view v_user;
思考:實際開發過程當中,視圖的使用頻率高嗎?開發
在實際開發過程當中,通常不會使用視圖。假設咱們在項目中使用了大量的視圖,後期咱們想要擴展某個功能的時候,這個功能恰巧又須要對視圖進行修改,那麼首先須要在MySQL中將視圖修改,而後再去應用程序中修改對應的sql語句,這就涉及到跨部門溝通問題。
所以,MySQL中雖然有視圖這個功能,但咱們一般不會常常使用,幾乎都是經過從新修改應用程序中的sql語句來擴展功能。class