鑑於之前所總結的不繫統,這一篇準備單獨講解一個知識點,主要總結一下sql view(視圖)。
1、什麼是視圖:
視圖是基於sql語句的結果集的可視化的表。
視圖是根據用戶需要所做的一種虛表。
視圖中的字段來自於一個或多個表中的真實字段。
2、視圖和查詢的區別:
視圖和查詢都是sql語句組成,但二者有著本質的不同:
(1)存儲不同:視圖存儲為數據庫設計的一部分,而查詢則不是
(2)更新限制不一樣:視圖可以間接對錶進行更新
(3)排序不同:不能通過sql對視圖進行排序
3、視圖的作用:
(1)可以通過select和where來定義視圖,從而可以分割數據基表中某些對於用戶不關心的數據,使用戶把注意力集中到所關心的數據列.進一步簡化瀏覽數據工作.
(2)如果為某一個基表定義一個視圖,即使以後基本表的內容的發生改變了也不會影響“視圖定義”所得到的數據
(3)視圖能像基本表一樣授予或撤消訪問許可權
(4)視圖可以間接對錶進行更新,因此視圖的更新就是表的更新
4、視圖的創建和管理
(1)視圖的創建
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
(2)視圖的刪除
drop view_name
(3)視圖的修改
alert view 視圖名 as 新的select語句
5、通過視圖修改基本表的數據
(1)插入數據
在視圖中插入數據和基本表插入一樣,不過有幾點需要注意:
如果視圖中不包含基本表中屬性為not null的字段,插入失敗。另外不能再使用了distinct或者group by語句中插入值
(2)更新數據
在視圖中更新數據和基本表一樣,但是在視圖中使用了多個基本表連接的情況下,每次更新操作只能更新來自基本表的一個數據列。
同樣的不能再使用了distinct或者group by語句中更新值。
(3)刪除數據
delete 視圖名 [where 條件]
當視圖由兩個及其以上的表組成,不能刪除視圖的數據
視圖就總結到這裡,感覺還是很通俗易懂的,有什麼不對的地方歡迎各位指正。