最新的Web開發教程
 

SQL意見


視圖是一個虛表。

本章介紹如何創建,更新和刪除視圖。


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