SQL 视图

SQL CREATE VIEW 语句

SQL 视图是基于 SQL 语句结果集的虚拟表。SQL 视图包含行和列,就像真实的表一样。视图中的字段是数据库中一个或多个真实表的字段。

您可以向视图中添加 SQL 语句和函数,并呈现数据,就好像数据来自单个表一样。

视图使用 CREATE VIEW 语句创建。

CREATE VIEW 语法

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

注意:视图始终显示实时数据!数据库引擎只存储视图的定义(SELECT 语句),而不是数据的副本。

CREATE VIEW 示例

以下 SQL 语句创建一个名为 Brazil Customers 的视图,显示来自巴西的所有客户:

实例

CREATE VIEW [Brazil Customers] AS
SELECT CustomerName, ContactName
FROM Customers
WHERE Country = 'Brazil';

要查询上述视图,请使用以下 SQL 语法:

实例

SELECT * FROM [Brazil Customers];

以下 SQL 语句创建一个名为 Products Above Average Price 的视图,选择 Products 表中价格高于平均价格的所有产品:

实例

CREATE VIEW [Products Above Average Price] AS
SELECT ProductName, Price
FROM Products
WHERE Price > (SELECT AVG(Price) FROM Products);

要查询上述视图,请使用以下 SQL 语法:

实例

SELECT * FROM [Products Above Average Price];

ALTER VIEW 语句 (SQL Server)

在 SQL Server 中,可以使用 ALTER VIEW 语句更新视图。

ALTER VIEW 语法

ALTER VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

以下 SQL 语句将 City 列添加到 Brazil Customers 视图中:

实例

ALTER VIEW [Brazil Customers] AS
SELECT CustomerName, ContactName, City
FROM Customers
WHERE Country = 'Brazil';

CREATE OR REPLACE VIEW 语句 (MySQL 和 Oracle)

在 MySQL 和 Oracle 中,可以使用 CREATE OR REPLACE VIEW 语句更新视图。

CREATE OR REPLACE VIEW 语法

CREATE OR REPLACE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

以下 SQL 语句将 City 列添加到 Brazil Customers 视图中:

实例

CREATE OR REPLACE VIEW [Brazil Customers] AS
SELECT CustomerName, ContactName, City
FROM Customers
WHERE Country = 'Brazil';

DROP VIEW 语句

视图使用 DROP VIEW 语句删除。

DROP VIEW 语法

DROP VIEW view_name;

以下 SQL 语句删除 Brazil Customers 视图:

实例

DROP VIEW [Brazil Customers];