创建数据库
CREATE DATABASE [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];
解释:
[IF NOT EXISTS]:如果数据库存在,就不创建。防止要创建的数据库已经存在,而报错。较常用[COMMENT database_comment]:描述、备注[LOCATION hdfs_path]:数据库在 HDFS 上的 存储路径
默认存储路径:/user/hive/warehouse/数据库名.db[WITH DBPROPERTIES (property_name=property_value, ...)];:数据库属性,如:创建者、创建时间等
例子
create database test;
在web管理页面查看: http://localhost:9870/
例子:创建同名数据库(会报错)
create database test;
因为 test 数据库存在,会报错,错误信息如下:
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Database test already exists
例子:创建同名数据库(不会报错)
create database if not exists test;
如果test数据库存在,不会报错
例子:创建时指定保存路径
create database test2 location '/test2.db';
查看数据库
显示所有数据库
show databases;
过滤(like)
show databases like 't*';
查看数据库详细信息
desc database test;
显示如下:
test hdfs://0.0.0.0:9000/user/hive/warehouse/test.db root USER
解释:
test:名字hdfs://0.0.0.0:9000/user/hive/warehouse/test.db:保存路径root:用户名USER:用户类型
查看 扩展 详细信息(extended)
desc database extended test;
由于建库时,没有设置更多信息,所以显示的信息与 desc database test; 相同
在mysql中查看元信息
查看 mysql 的 metastore 数据库的 dbs 表,如下图:
可以查看数据库的详细信息
切换使用数据库
use 数据库名
例
use test
修改数据库
可以修改数据库的 DBPROPERTIES,设置 key/value 属性值:
alter database test set dbproperties('create_time'='2021-03-01');
查看扩展详细信息
desc database extended test;
显示如下:
test hdfs://0.0.0.0:9000/user/hive/warehouse/test.db root USER {create_time=2021-03-01}
在mysql中查看元信息
查看 mysql 的 metastore 数据库的 database_params 表,如下图:
删除数据库
删除 空 数据库
drop database test;
注意:只能删除 空的 数据库
如果数据库存在就删除
删除不存在的数据库会报错,为防止报错,加上 if exists 判断是否存在
drop database if exists test;
删除 非空 数据库
drop database test cascade;



