跳到主要内容

SQL视图

以下是 SQL 视图的三个关键知识要点的概括:

  1. 视图的定义和创建:在 SQL 中,视图被定义为基于一个或多个表的虚拟表。视图包含行和列,就像实际的表一样,但它们不存储数据,而是基于底层表的查询结果。可以使用 CREATE VIEW 命令创建视图。例如,创建一个名为 us_customers 的视图,它从 Customers 表中选择居住在美国的客户。

  2. 更新和删除视图:视图可以通过 CREATE OR REPLACE VIEW 命令进行更新,这允许修改视图的定义。例如,更新 us_customers 视图以包含更多字段。若要删除视图,可以使用 DROP VIEW 命令。

  3. 视图用于简化复杂查询:视图特别有用于简化复杂的 SQL 查询,如连接多个表。创建一个视图,如 order_details,可以简化从 CustomersOrders 表中获取联合数据的过程。这样,只需通过简单的 SELECT 语句从视图中选择数据,而不必每次都执行复杂的 JOIN 操作。

在 SQL 中,视图包含与表类似的行和列,但视图并不实际存储数据。

你可以将视图视为从一个或多个表创建的虚拟表环境,以便更容易地处理数据。

如何在 SQL 中使用视图

在 SQL 中创建视图

我们可以使用 CREATE VIEW 命令在 SQL 中创建视图。例如,

CREATE VIEW us_customers AS
SELECT customer_id, first_name
FROM Customers
WHERE Country = 'USA';

这里,从 customers 表创建了一个名为 us_customers 的视图。

现在要选择居住在 美国 的客户,我们可以简单地运行,

SELECT *
FROM us_customers;

更新视图

使用 CREATE OR REPLACE VIEW 命令可以更改或更新现有的 视图。例如,

CREATE OR REPLACE VIEW us_customers AS
SELECT *
FROM Customers
WHERE Country = 'USA';

这里,us_customers 视图被更新以显示所有字段。

删除视图

我们可以使用 DROP VIEW 命令删除视图。例如,

DROP VIEW us_customers;

这里,SQL 命令删除了名为 us_customers 的视图。

注意: 如果视图不可用,上述命令会抛出错误。

用于复杂查询的视图

假设 AB 是两个表,我们想要从这两个表中选择数据。为此,我们必须使用 SQL JOIN

然而,每次使用 JOIN 可能是一项繁琐的任务。为此,我们可以创建一个视图来轻松获取记录。

让我们创建一个视图,

CREATE VIEW order_details AS
SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
JOIN Orders
ON Customers.customer_id = Orders.customer_id;

现在,要选择数据,我们可以运行

SELECT *
FROM order_details;

这里,SQL 命令从视图 order_details 中选择数据。