视图是一个虚表。
本章介绍如何创建,更新和删除视图。
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