HiveQL: 数据定义之数据库操作

Hive Data Definition Language(DDL)


1 创建数据库
-- 1
CREATE DATABASE mydb;
-- 2
CREATE DATABASE IF NOT EXISTS mydb
LOCATION '/user/Oythonhill/mydb.db'
WITH DBPROPERTIES ('creater'='Oythonhill','date'='2017-12-30')
COMMENT 'this is a test db';

如果不指定LOCATION参数,数据库存在于默认目录/user/hive/warehouse/mydb.db
LOCATION参数,可以指定数据库的存储目录,这里的LOCATION是HDFS上的路径,其中Oythonhill是我的账户,mydb.db是一个目录
COMMENT参数,可以加上一些数据库的描述信息;

2 描述数据库
DESCRIBE DATABASE mydb;
DESCRIBE DATABASE EXTENDED mydb;

DESCRIBE DATABASE语句可以看到这个数据库的路径,COMMENT内容等信息
DESCRIBE DATABASE EXTENDED语句可以看到额外的键值对信息;

3 使用数据库
USE mydb;

USE命令用于将某个数据库设置为当前的工作数据库,和在文件系统中切换工作目录是一个概念

4 修改数据库
ALTER DATABASE mydb SET DBPROPERITIES ('edited-by'='Pythonhill')

目前Hive只支持修改键值对属性值,其他数据库信息都不允许更改;

5 删除数据库
-- 1
DROP DATABASE mydb;
-- 2
DROP DATABASE IF EXISTS mydb;
DROP DATABASE IF EXISTS mydb RESTRICT;
-- 3
DROP DATABASE IF EXISTS mydb CASCADE;

默认情况下,Hive不允许删除包含表的数据库
可以选择先将数据库中的表删除,再删除数据库,或者使用CASCADE关键字
与CASCADE关键字对应的是RESTRICT关键字,默认即为RESTRICT。

你可能感兴趣的:(HiveQL: 数据定义之数据库操作)