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;