HiveQL之Database相关操作

时间:2021-09-21 10:46:04
1、Create Database(创建数据库语法)

CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name

[COMMENT database_comment]

[LOCATION hdfs_path]

[WITH DBPROPERTIES (property_name=property_value, ...)];

使用database和schema意义是一样的。IF NOT EXISTS可以增强了程序的健壮性,create database时可以通过comment命令为数据库添加注释,同时也可以通过location为数据库指定存储路径,默认数据库路径创建在hive warehouse目录下。

2、Drop Database(删除数据库语法)

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

使用database和schema意义是一样的。IF EXISTS可以增强了程序的健壮性,restrict(限制)表示数据库默认是限制删除的,一般体现在数据库下有表等对象时,要想删除数据库需要先删除数据库下的对象,否则可以使用cascade关键字级联删除数据库及其对象信息。

3、Alter Database(修改数据库语法)

ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...);

ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role;

修改数据库在生产环境中一般意义不大。

4、Use Database(使用数据库)

USE database_name;

USE DEFAULT;

SELECT current_database();

切换到某数据库下,通常进行数据库切换时使用,一般程序SQL中可以通过db.schema的方式进行编码,这样在写脚本时可以不考虑使用use命令。

SELECT current_database();表示查看当前连接数据库对象。