視圖:
在MySQL當中視圖其實是一個sql的查詢結果。又稱爲虛擬表。
語法:
CREATE VIEW good_view as SELECT goods_id,goods_name,shop_price from goods where shop_price>2000;
結果:
視圖的作用:
1.權限控制的時候可以使用。
比如:某幾個列,允許用戶查詢,其它不允許。
可以通過使用視圖,開放其中的一列或幾列,起到權限控制的作用。
2.簡化複雜的查詢
3.視圖能不能添加,修改,和刪除
當視圖裏的字段與物理表(即源表)一一對應的時候,視圖是能夠更新,刪除和修改的,並同時將這些操作映射到源表。
但是當視圖裏的字段與源表不一致的時候或者是源表經過計算得到的結果的時候,對視圖進行這些操作是會報錯的。
4.創建視圖的算法:algorithm
對於簡單查詢形成的view,在對view查詢時,如where,order等等,可以把創建視圖的語句,和查詢視圖的語句合併成一條語句進而查詢物理表的語句。這種視圖的算法叫merge(合併)。
也有可能,視圖的語句本身比較複雜,很難再和查詢視圖的語句合併起來,MySQL可以先執行視圖的創建語句,在內存當中創建臨時表,然後再去查詢臨時表:temptable.