高級sql小結(三)

SQL 可視化 技術 聖故又名 2017-05-14

鑑於之前所總結的不繫統,這一篇準備單獨講解一個知識點,主要總結一下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 條件]

當視圖由兩個及其以上的表組成,不能刪除視圖的數據

視圖就總結到這裡,感覺還是很通俗易懂的,有什麼不對的地方歡迎各位指正。

相關推薦

推薦中...