创建数据库
create (database|schema) [if not exists] database_name
[comment database_comment]
[location hdfs_path]
[with dbproperties (property_name=property_value, ...)];
schema和database的用法是可以互换的 - 它们的意思是一样的。在hive 0.6(hive-675)中添加了create database 。hive 0.7(hive-1836)中添加了with dbproperties子句。
删除数据库
drop (database|schema) [if exists] database_name [restrict|cascade];
SCHEMA和DATABASE的用法是可以互换的 - 它们的意思是一样的。在Hive 0.6(HIVE-675)中增加了DROP DATABASE 。默认行为是RESTRICT,如果数据库不是空的,DROP DATABASE将会失败。要删除数据库中的表,请使用DROP DATABASE ... CASCADE。在Hive 0.8(HIVE-2090)中增加了对RESTRICT和CASCADE的支持。
改变数据库
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_name;
use default;
use为所有后续的HiveQL语句设置当前数据库。要恢复到默认数据库,请使用关键字“ default”而不是数据库名称。检查当前正在使用哪个数据库:( 从Hive 0.13.0开始)。select current_database()
use database_name被添加到Hive 0.6(HIVE-675)中。