📜  来自多个表的 mysql 视图 - SQL (1)

📅  最后修改于: 2023-12-03 15:10:41.853000             🧑  作者: Mango

MySQL视图

MySQL视图是从一个或多个基表中派生的虚拟表,与基表一样使用SELECT查询语句进行查询。视图是一个存储在数据库中的虚表,不包含任何数据,而是由一个查询定义。可以通过在使用视图的时候使用SELECT语句来查询视图的结果。

创建视图

使用CREATE VIEW语句创建视图。视图名称和视图中使用的查询在语句中给出。如果视图已经存在,则新的创建将替换现有视图。

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
修改视图

使用ALTER VIEW语句修改现有的视图。通常,您可以修改视图查询中的SELECT语句。视图名称和新视图查询在语句中给出。

ALTER VIEW view_name AS
SELECT column3, column4, ...
FROM table_name
WHERE condition;
删除视图

使用DROP VIEW语句删除现有的视图。视图名称在语句中给出。

DROP VIEW IF EXISTS view_name;
对多个表创建视图

在MySQL中,可以使用多个表来创建视图。使用标准的SELECT语句,将FROM子句中的表名称替换为表之间的连接。

下面是一个使用两个表创建视图的示例。这个视图将orders表和customers表连接起来。

CREATE VIEW orders_view AS
SELECT orders.order_id, orders.order_date, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;

以上示例的SELECT语句中使用了INNER JOIN连接,连接了两个表中的列。这个新的视图结果中包含了来自两个不同表的列,以便在使用视图时可以进行简单的查询。

使用视图

使用视图查询就像使用任何其他表查询一样。只需使用视图名称代替列名称。

SELECT * 
FROM orders_view
WHERE order_date > '2021-01-01';
总结

MySQL视图是从一个或多个基表中派生的虚拟表,与基表一样使用SELECT查询语句进行查询。使用多个表创建视图时,需要使用JOIN语句将表相互连接起来。视图可以像查询基本表一样进行查询,并且可以修改和删除。视图可以提高查询性能并简化查询语句。