MySQL 视图

MySQL CREATE VIEW 语句

在 SQL 中,视图是基于 SQL 语句的结果集的虚拟表。

视图包含行和列,就像真实的表一样。视图中的字段是来自数据库中的一个或多个真实表的字段。

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

视图是使用 CREATE VIEW 语句创建的。

CREATE VIEW 语法

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

注意:视图始终显示最新数据!每次用户查询时,数据库引擎都会重新创建视图。

MySQL CREATE VIEW 实例

以下 SQL 创建一个视图,显示所有来自巴西的客户:

实例

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

我们可以按如下方式查询上面的视图:

实例

SELECT * FROM [Brazil Customers];

以下 SQL 创建一个视图,选择 "Products" 表中价格高于平均价格的每个产品:

实例

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

我们可以按如下方式查询上面的视图:

实例

SELECT * FROM [Products Above Average Price];

MySQL 更新视图

可以使用 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';

MySQL 删除视图

使用 DROP VIEW 语句删除视图。

DROP VIEW 语法

DROP VIEW view_name;

以下 SQL 删除“Brazil Customers”视图:

实例

DROP VIEW [Brazil Customers];