作者:丶平凡世界
來源:SQL資料庫開發
SQL中的視圖是資料庫裡一個比較重要的組成部分,在隔離實體表的前提下還可以讓用戶查詢到需要的數據,可以起到保護底層數據的作用。同時針對不同的人群,視圖也可以起到簡化用戶對數據的理解。
視圖的定義
視圖是可視化的表。
本章講解如何創建、更新和刪除視圖。
CREATE VIEW 語句
在 SQL 中,視圖是基於 SQL 語句的結果集的可視化表。
視圖包含行和列,就像真正的表一樣。視圖中的欄位是一個或多個資料庫中真實表中的欄位。
您可以添加 SQL 函數,在哪裡添加,並將語句連接到視圖,或者您可以呈現數據,就像數據來自單個表一樣。
CREATE VIEW 語法
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
注釋:視圖總是顯示最新數據!每當用戶查詢視圖時,資料庫引擎就使用視圖的 SQL 語句重新構建數據。
CREATE VIEW 實例
我們以表Customers為例
"Customer_GD"(廣東客戶列表)視圖從"Customers"表中列出了所有廣東省的客戶。這個視圖使用下面的 SQL 創建:
CREATE VIEW Customer_GD ASSELECT *FROM CustomersWHERE 省份='廣東省'
我們可以像這樣查詢上面這個視圖:
SELECT * FROM Customer_GD
查看一下視圖中的結果:
下面的我們以"Products"表為示例
我們選取 "Products" 表中所有價格高於平均價格的產品:
CREATE VIEW [Products_Above_Average_Price] ASSELECT 名稱,價格FROM ProductsWHERE 價格>(SELECT AVG(價格) FROM Products)
我們可以像這樣查詢上面這個視圖:
SELECT * FROM [Products_Above_Average_Price]
結果如下:
我們也可以向視圖添加條件。現在,我們僅僅需要查看 "大米" 類的價格:
SELECT * FROM [Products_Above_Average_Price]WHERE 名稱='大米'
這樣就只顯示大米的價格了
更新視圖
您可以使用下面的語法來更新視圖:
CREATE OR REPLACE VIEW 語法
ALTER VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
現在,我們希望向 "Products_Above_Average_Price" 視圖添加 "規格" 列。我們將通過下列 SQL 更新視圖:
ALTER VIEW [Products_Above_Average_Price] ASSELECT 名稱,價格,規格FROM ProductsWHERE 價格>(SELECT AVG(價格) FROM Products)
我們重新查詢該視圖:
SELECT * FROM [Products_Above_Average_Price]
結果為:
刪除視圖
可以通過 DROP VIEW 命令來刪除視圖。
DROP VIEW 語法
DROP VIEW view_name
例如我們要刪除剛才新建的視圖"Products_Above_Average_Price"
DROP VIEW [Products_Above_Average_Price]
重新查詢視圖後就會顯示該視圖無效
證明視圖已經不存在了。