本文将向您展示如何在 MySQL 中创建和管理视图。视图是一个虚拟表,它不存储自己的数据,而是显示存储在其他表中的数据。本质上,视图是 SQL 查询执行的结果,它从一个或多个表中返回所需的数据行。
内容
如何使用 CREATE VIEW 语句创建一个简单的 MySQL 视图
如何使用 JOIN 创建视图以组合来自多个表的数据
如何更新 MySQL 视图
如何删除 MySQL 视图
如何在 dbForge Studio for MySQL 中创建视图
如何使用 CREATE VIEW 语句创建一个简单的 MySQL 视图
在 MySQL 中创建视图的基本语法如下:
[db_name.]是将在其中创建视图的数据库的名称;如果未指定,将在当前数据库中创建视图
view_name是您正在创建的视图的唯一名称
[(co??lumn_list)]定义了可在视图名称后的括号中指示的所需列列表;默认情况下,从 SELECT 语句的选择列表中检索列列表
select-statement是指定的 SELECT 语句,可以从表或视图中查询数据
这是最简单的例子。如果我们当前的数据库中有一个名为customers的表,并且我们想请求一个包含订单交易日期的客户列表,脚本可能如下所示:
执行此语句后,事务对象将在视图中可用。现在我们可以继续执行一个语句来选择这个视图中的所有字段:
输出将构成一个包含三列的表:id_number、name和transaction_date。
如何使用 JOIN 创建视图以组合来自多个表的数据
我们的下一个示例稍微复杂一些,因为它涉及多个表(在我们的示例中将有三个):
此视图为我们提供了每个客户的订单收入信息,按订单 ID 分组。为此,我们使用order_details表数据计算总收入,并使用 INNER JOIN 子句从订单表中检索订单 ID,从customers表中检索客户名称。
如何更新 MySQL 视图
如果需要通过视图更新表,可以使用INSERT、UPDATE、DELETE语句对底层表的行进行相应的操作。但是,请注意,为了可更新,您的视图不得包含以下任何内容:
聚合函数,例如 MIN、MAX、COUNT、AVG 或 SUM
诸如 GROUP BY、DISTINCT、HAVING、UNION 或 UNION ALL 之类的子句
左联接或外联接
对基表任意列的多次引用
SELECT 或 WHERE 子句中的子查询引用出现在 FROM 子句中的表
FROM 子句中对不可更新视图的引用
对非文字值的引用
现在让我们基于warehouses表创建一个名为warehouse_details的可更新视图。
现在我们可以从这个视图查询数据:
假设我们要使用以下 UPDATE 语句通过 warehouse_details视图更改warehouse_id ’55’的仓库的电话号码。
最后,我们可以使用以下查询检查是否已应用更改:
如何删除 MySQL 视图
如果我们不再需要某个视图,我们可以使用简单的 DROP 语句将其删除:
如何在 dbForge Studio for MySQL 中创建视图
现在我们知道了基本语法,我们需要找到一个工具来帮助我们最有效地管理我们的数据库和视图。我们建议您尝试使用dbForge Studio for MySQL,这是一个涵盖您能想到的几乎所有 MySQL 数据库操作的工具集。下载试用版,花几分钟安装它,然后让我们开始吧。
连接到 MySQL 数据库后,您可以使用以下两种方式之一创建视图。
第一种方法是在 SQL 文档中编写和执行查询。在这里,dbForge Studio for MySQL 提供上下文相关的代码完成、自动语法检查、代码片段、大型脚本的快速导航以及可自定义的格式配置文件。换句话说,您可以在一个方便的 IDE 中获得您可能需要的所有功能。
SQL 文档中的查询格式
如果您想通过简单的分步指南掌握此功能,请随时查看我们文档的编写和执行 SQL 语句部分。您将在那里找到一切,从创建新 SQL 文档到通过命令行界面自动执行查询。
第二种方式是 dbForge Studio 最著名的工具之一——Query Builder。它以图表的形式直观地呈现您的查询,生成上述 JOIN,并启用 INSERT、UPDATE 和 DELETE 语句的交互式构建以更新您的视图。
表之间带有 JOIN 的可视化查询设计
同样,本文不可能涉及关于工作流的全部内容,但我们的文档中有一个特殊的Query Builder部分,您可以在其中获得构建和管理可视化图表的详细指南。
结论
dbForge Studio for MySQL 是一个包罗万象的 IDE,用于数据库开发、管理和实施。它提供了构建查询、比较和分析数据、开发和调试存储过程、比较和同步数据库模式等的最简单方法。