MySQL DROP VIEW

摘要:在本教程中,您将学习如何使用 MySQL DROP VIEW语句从数据库中删除视图。

MySQL DROP VIEW语句简介

DROP VIEW语句从数据库中完全删除视图。以下是DROP VIEW语句的基本语法:

DROP VIEW [IF EXISTS] view_name;
Code language: SQL (Structured Query Language) (sql)

在此语法中,您可以在DROP VIEW关键字后指定要删除的视图的名称。可选的IF EXISTS选项仅在视图存在时有条件地删除该视图。

要在单个语句中删除多个视图,请使用以下语法:

DROP VIEW [IF EXISTS] view_name1 [,view_name2]...;
Code language: SQL (Structured Query Language) (sql)

在此语法中,您可以在 DROP VIEW 关键字后指定以逗号分隔的视图列表。

如果列表包含不存在的视图,则DROP VIEW语句将失败并且不会删除任何视图。但是,如果使用IF EXISTS选项, DROP VIEW语句将为每个不存在的视图生成一个NOTE

请注意,在 MySQL 5.7 或更早版本中,如果存在任何不存在的视图,则DROP VIEW将返回错误。然而,它放弃了现有的观点。

MySQL DROP VIEW 语句示例

让我们举一些使用DROP VIEW语句的示例。

1) MySQL DROP VIEW – 删除视图示例

此语句根据customerspayments表创建一个名为customerPayments视图

客户付款
CREATE VIEW customerPayments 
AS
    SELECT 
        customerName, 
        SUM(amount) payment
    FROM
        customers
    INNER JOIN payments 
        USING (customerNumber)
    GROUP BY 
        customerName;Code language: SQL (Structured Query Language) (sql)

此示例使用DROP VIEW语句删除customerPayments视图:

DROP VIEW IF EXISTS customerPayments;
Code language: SQL (Structured Query Language) (sql)

2) MySQL DROP VIEW – 删除多个视图示例

此语句根据employeesoffices表创建一个名为employeeOffices视图

CREATE VIEW employeeOffices AS
    SELECT 
        firstName, lastName, addressLine1, city
    FROM
        employees
            INNER JOIN
        offices USING (officeCode);Code language: SQL (Structured Query Language) (sql)

以下语句使用DROP VIEW语句删除两个视图employeeOfficeseOffices

DROP VIEW employeeOffices, eOffices;
Code language: SQL (Structured Query Language) (sql)

MySQL 发出以下错误:

Error Code: 1051. Unknown table 'classicmodels.eoffices'
Code language: SQL (Structured Query Language) (sql)

让我们添加IF EXISTS选项,如下所示:

DROP VIEW IF EXISTS employeeOffices, eOffices;
Code language: SQL (Structured Query Language) (sql)

MySQL 发出了警告:

1 warning(s): 1051 Unknown table 'classicmodels.eoffices'
Code language: SQL (Structured Query Language) (sql)

employeeOffices视图保持不变。

此语句根据productsproductLines表创建一个名为productCatalogs新视图

CREATE VIEW productCatalogs AS
    SELECT 
        productLine, productName, msrp
    FROM
        products
            INNER JOIN
        productLines USING (productLine);
Code language: SQL (Structured Query Language) (sql)

以下示例使用DROP VIEW语句删除employeeOfficesproductCatalogs视图:

DROP VIEW employeeOffices, productCatalogs;
Code language: SQL (Structured Query Language) (sql)

MySQL 完全删除了视图。

概括

  • 使用DROP VIEW语句从数据库中删除一个或多个视图。
  • 使用IF EXISTS选项有条件地删除视图(如果存在)。
本教程有帮助吗?