Code前端首页关于Code前端联系我们

MySQL学习入门教程:管理视图(显示、修改和删除)

terry 2年前 (2023-09-26) 阅读数 43 #数据库

了解如何在MySQL中管理视图,包括显示、修改和删除视图。

查看视图定义

MySQL提供了语句SHOW CREATE VIEW来显示视图定义。 H 下面是 oShow Create View 函数的语法:

SHOW CREATE VIEW [database_name].[view_ name];
SQL

要显示视图定义,必须在 Show Create View后指定视图名称。

为了更好地介绍,请先创建一个视图。

假设您基于表employees创建一个简单的视图,展示公司的组织结构:

USE yiibaidb;
CREATE VIEW organization AS
    SELECT 
        CONCAT(E.lastname, E.firstname) AS Employee,
        CONCAT(M.lastname, M.firstname) AS Manager
    FROM
        employees AS E
            INNER JOIN
        employees AS M ON M.employeeNumber = E.ReportsTo
    ORDER BY Manager;
SQLSQL

查询结果如下 SQL

至要显示视图定义,请使用命令 SHOW CREATE VIEW,如下所示:

SHOW CREATE VIEW organization;
SQL

您还可以将此类视图的定义显示为文本编辑器。用于打开数据库文件夹视图定义文件的记事本。

例如,要打开视图定义organization,可以通过以下路径找到视图定义文件:\data\yiibaidb\organization.frm。

但是,不应直接在文件.frm 中更改视图定义。

更改视图

MySQL 提供了两个允许您更改现有视图的语句: ALTER VIEWCREATE❀

要更改视图,请使用以下命令改变视图

创建视图后,可以使用命令ALTER VIEW更改视图。语句

ALTER VIEW 的语法类似于语句 CREATE VIEW,不同之处在于 CREATE‶ 被关键字CREATE 替换。 关键字。一切都一样。

ALTER
 [ALGORITHM =  {MERGE | TEMPTABLE | UNDEFINED}]
  VIEW [database_name].  [view_name]
   AS 
 [SELECT  statement]
SQL

以下语句显示如何通过添加列 email 来修改视图 organization

ALTER VIEW organization
  AS 
  SELECT CONCAT(E.lastname,E.firstname) AS Employee,
         E.email AS  employeeEmail,
         CONCAT(M.lastname,M.firstname) AS Manager
  FROM employees AS E
  INNER JOIN employees AS M
    ON M.employeeNumber = E.ReportsTo
  ORDER BY Manager;
SQL

要检查更改,您可以在 组织视图中查询数据:

SELECT 
    *
FROM
    Organization;
SQLuteSQL Shell

使用创建或替换视图语句更改视图

SELECT 
    *
FROM
    Organization;
除了 ALTER VIEW 之外,您还可以使用 来替换或替换 OR OR OR PLACE 现有视图。 MySQL 仅当视图已存在时才修改视图。如果没有视图,MySQL 会创建一个新视图。

以下语句使用 CREATE OR SET view 语法来基于 v_contactsv_contactsv_contacts 创建视图。 表: SQL

通过运行上述查询,您将得到以下结果 -

+-----------+-----------+-----------+--------------------------------+
| firstName | lastName  | extension | email                          |
+-----------+-----------+-----------+--------------------------------+
| Diane     | Murphy    | x5800     | dmurphy@yiibai.com             |
| Mary      | Hill      | x4611     | mary.hill@yiibai.com           |
| Jeff      | Firrelli  | x9273     | jfirrelli@yiibai.com           |
| William   | Patterson | x4871     | wpatterson@yiibai.com          |
| Gerard    | Bondur    | x5408     | gbondur@gmail.com              |
| Anthony   | Bow       | x5428     | abow@gmail.com                 |
| Leslie    | Jennings  | x3291     | ljennings@yiibai.com           |
.............. 此处省略了一大波数据 ..................................
| Martin    | Gerard    | x2312     | mgerard@gmail.com              |
| Lily      | Bush      | x9111     | lilybush@yiiibai.com           |
| John      | Minsu     | x9112     | johnminsu@classicmodelcars.com |
+-----------+-----------+-----------+--------------------------------+
25 rows in set
Shell

假设您要将职位 (jobtitle

v) 添加到column,,使用以下语句 -

CREATE OR REPLACE VIEW v_contacts AS
    SELECT 
        firstName, lastName, extension, email, jobtitle
    FROM
        employees;
-- 查询视图数据
SELECT * FROM v_contacts;
SQL

执行完上面的查询语句后,你会看到添加数据列 -

+-----------+-----------+-----------+--------------------------------+----------------------+
| firstName | lastName  | extension | email                          | jobtitle             |
+-----------+-----------+-----------+--------------------------------+----------------------+
| Diane     | Murphy    | x5800     | dmurphy@yiibai.com             | President            |
| Mary      | Hill      | x4611     | mary.hill@yiibai.com           | VP Sales             |
| Jeff      | Firrelli  | x9273     | jfirrelli@yiibai.com           | VP Marketing         |
...................  此处省略了一大波数据 ....................................................
| Yoshimi   | Kato      | x102      | ykato@gmail.com                | Sales Rep            |
| Martin    | Gerard    | x2312     | mgerard@gmail.com              | Sales Rep            |
| Lily      | Bush      | x9111     | lilybush@yiiibai.com           | IT Manager           |
| John      | Minsu     | x9112     | johnminsu@classicmodelcars.com | SVP Marketing        |
+-----------+-----------+-----------+--------------------------------+----------------------+
25 rows in set
SQL

创建视图后删除视图时 视图,可以使用语句DROP VIEW将其删除。. DROP VIEW 语句的语法解释如下:
DROP VIEW [IF EXISTS] [database_name].[view_name]
SQL

IF EXISTS 是语句中的可选子句,允许您检查视图是否存在。这可以避免删除不存在的视图时出现错误。

例如要删除视图组织,可以使用DROP VIEW SQL 语句如下: SQLy 将视图定义文件备份到目录/数据库名称/arc/。如果您不小心更改或删除了视图,您可以从 /database_name/arc/ 获取其备份。

在本教程中,您学习了如何在 MySQL 中管理视图,包括如何显示、修改和删除视图。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门