Hive:DDL of Database

版权声明:本文为博主原创文章,转载需保留原始链接。 https://blog.csdn.net/qiulinsama/article/details/87255415

Create/Drop/Alter/Use Database

Create Database

CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
  [COMMENT database_comment]
  [LOCATION hdfs_path]
  [WITH DBPROPERTIES (property_name=property_value, ...)];

  SCHEMA 和 DATABASE 是可以互换的,它们表示的是相同的东西。

  CREATE DATABASE 语句在 Hive 0.6 (HIVE-675) 中加入的。 The WITH DBPROPERTIES 子句是 Hive 0.7 (HIVE-1836) 中加入的。

Drop Database

DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];

  SCHEMA 和 DATABASE 是可以互换的,它们表示的是相同的东西。DROP DATABASE 语句是在 Hive 0.6 (HIVE-675) 中加入的。 hive 默认是 RESTRICT 模式,如果数据库中不为空,即存在表,DROP DATABASE 将会失败。为了一并删除数据库中的表,可以使用 DROP DATABASE … CASCADE,这个用法是在 Hive 0.8 (HIVE-2090) 中加入的。

Alter Database

ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...);   -- (Note: SCHEMA added in Hive 0.14.0)
 
ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role;   -- (Note: Hive 0.13.0 and later; SCHEMA added in Hive 0.14.0)
  
ALTER (DATABASE|SCHEMA) database_name SET LOCATION hdfs_path; -- (Note: Hive 2.2.1, 2.4.0 and later)

  SCHEMA 和 DATABASE 是可以互换的,它们表示的是相同的东西。ALTER SCHEMA 是在 Hive 0.14 (HIVE-6601) 中加入的。

  ALTER DATABASE … SET LOCATION 不会讲数据库的当前文件夹中的内容移动到新的指定路径。它不会更改数据库下的任何表/分区所关联的位置。它只会改变数据库中新建表的默认父目录。这种行为类似于更改表目录而不会将现有分区移动到其他位置。

  不能更改关于数据库的其他元数据。

Use Database

USE database_name;
USE DEFAULT;

SELECT current_database();

  USE为所有后续 HiveQL 语句设置当前数据库。若要还原到默认数据库,请使用关键字“default”而不是数据库名称。查看当前使用的数据库可以使用 SELECT current_database() (从Hive 0.13.0起)。

  USE database_name 在 Hive 0.6 (HIVE-675) 中被加入。

猜你喜欢

转载自blog.csdn.net/qiulinsama/article/details/87255415
今日推荐