視圖是一個虛表。
本章介紹如何創建,更新和刪除視圖。
SQL CREATE VIEW語句
在SQL中,視圖是基於SQL語句的結果集的虛擬表。
視圖包含行和列,就像一個真正的表。 在視圖中的字段是從數據庫中的一個或多個真實表中的字段。
您可以添加SQL函數,WHERE和JOIN語句視圖和現在的數據,如果數據是從一個單一的表來。
SQL CREATE VIEW語法
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
Note:視圖總是顯示了最新的數據! 數據庫引擎重新創建數據,使用視圖的SQL語句,每一個用戶查詢視圖的時間。
SQL CREATE VIEW例子
如果你有Northwind數據庫可以看到,它在默認情況下安裝了幾個觀點。
認為“當前產品列表”從列表中的所有活動產品(未停產的產品) "Products"表。 該視圖與下列SQL創建:
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No
我們可以查詢上面的如下觀點:
SELECT * FROM [Current Product List]
在Northwind示例數據庫另一種觀點在選擇每一個產品"Products"有單位價格比平均單價較高的表:
CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)
我們可以查詢上面的如下觀點:
SELECT * FROM [Products Above Average Price]
在Northwind數據庫另一種觀點,計算各類別在1997年請注意,此觀點來自所謂的“產品銷售為1997年的”另一種觀點認為選擇它的數據的總銷售:
CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName
我們可以查詢上面的如下觀點:
SELECT * FROM [Category Sales For 1997]
我們還可以添加一個條件查詢。 現在,我們希望看到的銷售總額只為類"Beverages" :
SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'
SQL更新視圖
您可以通過更新使用以下語法一個觀點:
SQL CREATE OR REPLACE VIEW語法
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
現在,我們要添加"Category"欄的“當前產品列表”的說法。 我們將更新與下面的SQL視圖:
CREATE OR REPLACE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No
SQL刪除視圖
您可以刪除使用DROP VIEW命令的視圖。
SQL DROP VIEW語法
DROP VIEW view_name