程序员社区

MySQL系列教程 --- 26、MySQL 创建视图、更新视图、删除视图

视图是没有值的数据库对象。其内容基于基表。它包含类似于真实表的行和列。在 MySQL 中,View 是通过连接一个或多个表的查询创建的虚拟表。它的操作类似于基表,但不包含它自己的任何数据。视图和表有一个主要区别,即视图是建立在其他表(或视图)之上的定义。如果基础表中发生任何更改,视图中也会反映相同的更改。

MySQL允许我们主要通过两种方式创建视图:

  1. MySQL命令行客户端
  2. MySQL 工作台

让我们详细讨论两者。

MySQL命令行客户端

我们可以使用CREATE VIEWSELECT语句创建一个新视图。SELECT 语句用于从源表中获取数据以创建 VIEW。

句法

以下是在 MySQL 中创建视图的语法:

CREATE [OR REPLACE] VIEW view_name AS    
SELECT columns    
FROM tables    
[WHERE conditions];    

参数:

视图语法包含以下参数:

OR REPLACE: 它是可选的。当 VIEW 已经存在时使用它。如果不指定此子句且 VIEW 已存在,则 CREATE VIEW 语句将返回错误。

view_name: 它指定要在 MySQL 中创建的 VIEW 的名称。

WHERE conditions: 它也是可选的。它指定要包含在 VIEW 中的记录必须满足的条件。

例子

让我们通过一个例子来理解它。假设我们的数据库有一个表course,我们将基于这个表创建一个视图。因此,下面的示例将创建一个名为“ trainer ”的 VIEW ,它通过从表课程中获取数据来创建一个虚拟表。

CREATE VIEW trainer AS    
SELECT course_name, trainer     
 FROM courses;    

一旦 CREATE VIEW 语句执行成功,MySQL 将创建一个视图并将其存储在数据库中。

file

查看创建的 VIEW

我们可以使用以下语法查看创建的视图:

SELECT * FROM view_name;    

让我们看看创建的 VIEW 的样子:

SELECT * FROM trainer;    

file

注意:重要的是要知道视图不会物理存储数据。当我们为视图执行 SELECT 语句时,MySQL 使用视图定义中指定的查询并产生输出。由于此功能,它有时被称为虚拟表。

MySQL 更新视图

在 MYSQL 中,ALTER VIEW 语句用于修改或更新已创建的 VIEW 而不会删除它。

句法:

以下是用于更新 MySQL 中现有视图的语法:

ALTER VIEW view_name AS    
SELECT columns    
FROM table    
WHERE conditions;    

例子:

以下示例将通过添加新列来更改已创建的 VIEW 名称“trainer”。

ALTER VIEW trainer AS    
SELECT id, course_name, trainer  
FROM courses;    

一旦ALTER VIEW语句执行成功,MySQL 将更新视图并将其存储在数据库中。我们可以使用 SELECT 语句查看更改后的视图,如输出所示:

file

MySQL 删除视图

我们可以使用DROP VIEW语句删除现有的 VIEW 。

句法:

以下是用于删除视图的语法:

DROP VIEW [IF EXISTS] view_name;    

参数:

view_name:它指定我们要删除的 VIEW 的名称。

IF EXISTS: 它是可选的。如果我们不指定这个子句并且 VIEW 不存在,则 DROP VIEW 语句将返回错误。

例子:

假设我们要删除上面创建的视图“ trainer ”。执行以下语句:

DROP VIEW trainer;    

执行成功后,需要验证视图是否可用,如下所示:

file

MySQL 使用 JOIN 子句创建视图

在这里,我们将看到涉及多个表并使用连接子句的视图创建的复杂示例。

假设我们有两个示例表,如下所示:

file

现在执行下面的语句,将创建一个视图训练器和 join 语句:

CREATE VIEW Trainer       
AS SELECT c.course_name, c.trainer, t.email       
FROM courses c, contact t   
WHERE c.id = t.id;  

我们可以使用下图所示的 SELECT 语句验证视图:

file

赞(0) 打赏
未经允许不得转载:IDEA激活码 » MySQL系列教程 --- 26、MySQL 创建视图、更新视图、删除视图

一个分享Java & Python知识的社区