- 表特定语句
- Impala - 创建表语句
- Impala - 插入语句
- Impala - 选择语句
- Impala - 描述语句
- Impala - 修改表
- Impala - 删除表
- Impala - 截断表
- Impala - 显示表
- Impala - 创建视图
- Impala - 修改视图
- Impala - 删除视图
- Impala - 子句
- Impala - ORDER BY 子句
- Impala - GROUP BY 子句
- Impala - HAVING 子句
- Impala - LIMIT 子句
- Impala - OFFSET 子句
- Impala - UNION 子句
- Impala - WITH 子句
- Impala - DISTINCT 运算符
- Impala 有用资源
- Impala - 快速指南
- Impala - 有用资源
- Impala - 讨论
Impala - 删除表
Impala 的 `drop table` 语句用于删除 Impala 中已存在的表。此语句还会删除内部表的底层 HDFS 文件。
注意 - 使用此命令时必须小心,因为一旦删除表,表中的所有信息都将永久丢失。
语法
`DROP TABLE` 语句的语法如下所示。这里,`IF EXISTS` 是一个可选子句。如果使用此子句,只有在存在具有给定名称的表时才会删除该表。否则,将不执行任何操作。
DROP table database_name.table_name;
如果尝试删除不存在的表且没有使用 `IF EXISTS` 子句,则会生成错误。可以选择性地与 `table_name` 一起指定 `database_name`。
示例
让我们首先验证数据库 `my_db` 中的表列表,如下所示。
[quickstart.cloudera:21000] > show tables; Query: show tables +------------+ | name | +------------+ | customers | | employee | | student | +------------+ Fetched 3 row(s) in 0.11s
从以上结果可以看出,数据库 `my_db` 包含 3 个表。
以下是 `drop table` 语句的示例。在此示例中,我们正在从数据库 `my_db` 中删除名为 `student` 的表。
[quickstart.cloudera:21000] > drop table if exists my_db.student;
执行上述查询后,将删除指定名称的表,并显示以下输出。
Query: drop table if exists student
验证
`show tables` 查询列出 Impala 中当前数据库中的表列表。因此,可以使用 `show tables` 语句验证表是否已删除。
首先,需要切换到存在所需表的数据库的上下文,如下所示。
[quickstart.cloudera:21000] > use my_db; Query: use my_db
然后,如果使用 `show tables` 查询获取表列表,则可以看到名为 `student` 的表不在列表中。
[quickstart.cloudera:21000] > show tables; Query: show tables +-----------+ | name | +-----------+ | customers | | employee | | student | +-----------+ Fetched 3 row(s) in 0.11s
使用 Hue 浏览器创建数据库
打开 Impala 查询编辑器,在其中键入 `drop table` 语句。然后单击执行按钮,如下面的屏幕截图所示。
执行查询后,轻轻地将光标移动到下拉菜单的顶部,您会找到一个刷新符号。如果单击刷新符号,数据库列表将刷新,并且最近所做的更改将应用于其中。
验证
单击编辑器左侧“数据库”标题下的下拉菜单。在那里您可以看到数据库列表;选择数据库 `my_db`,如下所示。
选择数据库 `my_db` 后,您可以看到其中的表列表,如下所示。在这里,您找不到已删除的表 `student`,如下所示。