MySQL 视图17 Mar 2025 | 5 分钟阅读 视图是一种没有值的数据库对象。它的内容基于基表。它包含类似于真实表的行和列。在 MySQL 中,视图是一个通过连接一个或多个表而创建的**虚拟表**。它的操作方式与基表类似,但本身不包含任何数据。视图和表有一个主要区别,即视图是构建在其他表(或视图)之上的定义。如果基础表发生任何更改,相同的更改也会反映在视图中。 MySQL 允许我们主要通过两种方式创建视图:
让我们详细讨论这两种方式。 MySQL 命令行客户端我们可以使用 **CREATE VIEW** 和 **SELECT** 语句来创建新视图。SELECT 语句用于从源表获取数据以创建视图。 语法以下是在 MySQL 中创建视图的语法: 参数视图语法包含以下参数: **OR REPLACE**:它是可选的。当视图已经存在时使用。如果您不指定此子句而视图已经存在,CREATE VIEW 语句将返回错误。 **view_name**:它指定您要在 MySQL 中创建的视图的名称。 **WHERE conditions**:它也是可选的。它指定记录要包含在视图中必须满足的条件。 示例让我们通过一个例子来理解它。假设我们的数据库有一个名为 **course** 的表,我们将基于此表创建一个视图。因此,以下示例将创建一个名为 "trainer" 的视图,该视图通过从 courses 表中获取数据来创建一个虚拟表。 一旦 CREATE VIEW 语句执行成功,MySQL 将创建一个视图并将其存储在数据库中。 ![]() 查看已创建的视图 我们可以使用以下语法查看已创建的视图: 让我们看看已创建的视图是什么样子: ![]() 注意:重要的是要知道视图不物理存储数据。当我们对视图执行 SELECT 语句时,MySQL 使用视图定义中指定的查询并生成输出。由于此功能,它有时被称为虚拟表。MySQL 更新视图在 MySQL 中,ALTER VIEW 语句用于修改或更新已创建的视图,而无需删除它。 语法 以下是在 MySQL 中更新现有视图的语法: 示例 以下示例将通过添加新列来更改已创建的名为 "trainer" 的视图。 一旦 **ALTER VIEW** 语句执行成功,MySQL 将更新视图并将其存储在数据库中。我们可以使用 SELECT 语句查看已更改的视图,如输出所示: ![]() MySQL 删除视图我们可以使用 **DROP VIEW** 语句删除现有视图。 语法 以下是用于删除视图的语法: 参数 **view_name**:它指定我们要删除的视图的名称。 **IF EXISTS**:它是可选的。如果我们不指定此子句而视图不存在,DROP VIEW 语句将返回错误。 示例 假设我们要删除我们上面创建的视图 "trainer"。执行以下语句: 成功执行后,需要验证视图是否可用,如下所示: ![]() MySQL 使用 JOIN 子句创建视图在这里,我们将看到一个涉及多个表并使用 **join** 子句的复杂视图创建示例。 假设我们有两个示例如下所示的表: ![]() 现在执行以下语句,它将创建 Trainer 视图以及 join 语句: 我们可以使用 SELECT 语句验证视图,如以下图像所示: ![]() 使用 MySQL Workbench 创建视图要使用此工具在数据库中创建视图,我们首先需要启动 MySQL Workbench 并使用**用户名**和**密码**登录到 MySQL 服务器。它将显示以下屏幕: ![]() 现在执行以下步骤来删除数据库: 1. 转到导航选项卡并单击**架构菜单**。在这里,我们可以看到所有以前创建的数据库。在架构菜单下选择任何数据库,例如 **testdb**。它将弹出选项,如下屏幕所示。 ![]() 2. 接下来,我们需要右键单击视图选项,将出现一个新弹出屏幕。 ![]() 3. 一旦我们选择了“**创建视图**”选项,它将给出以下屏幕,我们可以在其中编写自己的视图。 ![]() 4. 完成脚本编写后,单击**应用**按钮,我们将看到以下屏幕: ![]() 5. 在此屏幕中,我们将审查脚本并单击数据库上的**应用**按钮。 ![]() 6. 最后,单击**完成**按钮以完成视图创建。现在,我们可以验证视图,如下所示: ![]() 我们为什么要使用视图?MySQL 视图为用户提供了以下优点: 简化复杂查询 它允许用户简化复杂查询。如果我们正在使用复杂查询,我们可以基于它创建一个视图,以便使用简单的 SELECT 语句,而无需再次键入复杂查询。 提高可重用性 我们知道视图简化了复杂查询,并将其转换为单行代码以使用视图。这种类型的代码使其更容易与我们的应用程序集成。这将消除在每个查询中重复编写相同公式的机会,使代码更具可重用性和可读性。 有助于数据安全 它还允许我们仅向用户显示授权信息,并隐藏个人和银行信息等重要数据。我们可以通过仅授权必要数据来限制用户可以访问的信息。 启用向后兼容性 视图还可以实现旧系统中的向后兼容性。假设我们想将一个大表拆分为许多小表,而不影响引用该表的当前应用程序。在这种情况下,我们将创建一个与真实表同名的视图,以便当前应用程序可以像引用表一样引用视图。 下一个主题MySQL 表锁定 |
我们请求您订阅我们的新闻通讯以获取最新更新。