DDL-DB
CREATE
语句
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] : 可选的,如果不使用这个,然后去创建一张已经存在的表的话则会报错
–[COMMENT] : 可选的,表示给创建的DB备注,必须备注在单引号中
–[LOCATION] : 可选的,DB的存储路径是我们在hive-site.xml中配置的hive.metastore.warehouse.dir(即默认为/user/hive/warehouse),
如果想给DB自定义存储路径的话,则设置这个选项
–[WITH DBPROPERTIES] : 可选的,表示给创建的DB的属性
示例
CREATE DATABASE IF NOT EXISTS becky_test
COMMENT 'test db'
LOCATION 'hdfs://master:9999/user/becky/dbs'
WITH DBPROPERTIES ('Created by' = 'becky', 'Created on' = '2019-12-09');
SHOW
语句
SHOW (DATABASES | SCHEMAS) [LIKE 'identifier'];
示例
SHOW DATABASES; --列出所有databases
show databases like 'a*'; --列出所有以“a”开头的databases
show databases like 'app'; --列出名为“app”的databases
DESCRIBE
语句
DESCRIBE DATABASE [EXTENDED] database_name;
说明
–[EXTENDED] : 表示将DB的属性也展示出来
示例
DESCRIBE DATABASE EXTENDED becky-test;
ALTER
语句
ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES(property_name = property_value, ....);
DROP
语句
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];
说明
–[RESTRICT|CASCADE] : 如果DB中还有表存在的话,那么在RESTRICT模式下,则不能删除DB;
– 但是呢如果是CASCADE的模式下呢,则会先删除这个DB下的所有表,然后再输出这个DB
– hive默认是RESTRICT模式