視圖的建立文法:
create view視圖名 as select 語句;
顯示表 将會被顯示出來
可以看到“表結構”
和視圖内容
删除視圖文法:
drop view 視圖名;
視圖修改
alter view 視圖名 as select 語句;
建立視圖的原因:
1、 簡化查詢
2、 可以進行權限控制
比如:可以把 商品名稱 等建立視圖,把商品價格等“隐藏”。把表的權限保留,隻把視圖提供給别人。
3、大的資料分表時,可以用到資料。
比如:表的行數大于200 萬行時,開始變慢,可以把一張表的資料拆成4張表(視圖)來存放。
4、可以将多張表合并成一張表(視圖)。結合 union .
注意:
1、可以完全把視圖當作表看待。
2、視圖源于表,如果表的内容改變了,那麼視圖的内容也會跟着發生改變。
3、視圖的增删改也将會影響表,但是視圖并不是總是可以增删改的。視圖和表資料是一一對應時,可以修改。對于視圖insert視圖必須包含所有表中沒有預設值的列。
視圖的 algorithm(算法)
Algorithm = merge/temptable/undefined
merge 當引用視圖時,引用視圖的語句和定義視圖的語句合并。
意味着,視圖隻是一個規則,當查詢視圖時,
把查詢視圖的語句(比如where 等)與建立時的語句where子句合并分析,形成一條select語句。相當于把語句效果疊加。
temptable當引用視圖時,根據視圖的建立語句,建立一個臨時表。
是把 根據建立時候的語句瞬間建立臨時表,查詢視圖的語句,從該臨時表查詢。
undefined 未定義自動,讓系統幫你選擇。
————————————————
版權聲明:本文為CSDN部落客「明明如月學長」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:
https://blog.csdn.net/w605283073/article/details/46572537