天天看點

mysql 視圖

視圖的建立文法:

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

繼續閱讀