DROP VIEW 语句

最近更新时间:2026-05-06 16:28:12

我的收藏
DROP VIEW 语句用于删除一个先前通过 CREATE VIEW 语句创建的视图。

核心概念

视图(View)本质上是一个逻辑构造(一个查询的别名),它本身不包含任何物理数据。因此,执行 DROP VIEW 操作:
仅涉及元存储数据库(Metastore)中的元数据更改。
不会影响存储系统中的任何数据文件。
不会删除视图所引用的基础表中的数据。
删除指定的视图,该视图最初是通过 CREATE VIEW 语句创建的。由于视图纯粹是一个逻辑构造(查询的别名),没有任何物理数据,因此 DROP VIEW 仅涉及元存储数据库中的元数据更改,而不会影响存储系统中的任何数据文件。

语法

DROP VIEW [IF EXISTS] [db_name.]view_name
关键字/参数
说明
IF EXISTS
可选。如果视图不存在,则使用此选项可以避免抛出错误。语句会成功执行,但会发出一个警告。
db_name
可选。指定视图所在的数据库名称。如果省略,则默认在当前数据库中查找视图。
view_name
必需。要删除的视图的名称。

示例

以下示例演示了如何创建和删除视图,并说明了如何通过数据库限定符(db_name.)来引用或操作不同数据库中的视图。

-- 在当前数据库中创建并删除视图
CREATE VIEW few_rows_from_t1 AS SELECT * FROM t1 LIMIT 10;
DROP VIEW few_rows_from_t1;

-- 创建并删除一个引用其他数据库中表的视图
CREATE VIEW table_from_other_db AS SELECT x FROM db1.foo WHERE x IS NOT NULL;
DROP VIEW table_from_other_db;

USE db1;
-- 在另一个数据库中创建视图
CREATE VIEW db2.v1 AS SELECT * FROM db2.foo;
-- 切换到另一个数据库并删除视图
USE db2;
DROP VIEW v1;

USE db1;
-- 在另一个数据库中创建视图
CREATE VIEW db2.v1 AS SELECT * FROM db2.foo;
-- 直接删除另一个数据库中的视图(无需切换)
DROP VIEW db2.v1;