一、数据库(database)
1. 创建数据库
创建数据库语法:
CREATE DATABASE [IF NOT EXISTS] database_name
[COMMENT database_comment] ---增加备注
[LOCATION hdfs_path]--创建的数据库在DEFS上的根路径
[WITH DBPROPERTIES (property_name=property_value, ...)];
注:[]是可选择的内容,假设创建的数据库已经存在则会抛出一个异常,不存在则会创建一个新的数据库
具体案例:
create database db_hive1;
--创建一个数据库,不指定数据库的路径,数据库存储在默认的路径上
create database db_hive2 location '/db_hive2';
--创建一个指定路径的数据库
create database db_hive3 with dbproperties('create_date'='2022-11-18');
--创建一个指定DBPROPERTIES的数据库
2. 查询数据库
语法:
SHOW DATABASES;
--查询所有的数据库,假设对数据库进行模糊查询,使用下面语法
SHOW DATABASES [LIKE 'identifier_with_wildcards'];
注:like通配表达式说明:*表示任意个任意字符,|表示或的关系。
案例:
show databases like 'db_hive*';
--输出结果:
--db_hive_1
--db_hive_2
查询数据库具体信息语法:
DESCRIBE|DESC DATABASE [EXTENDED] db_name;
--查询数据库的具体信息,比如数据库路径、数据库所有者等
--要想查询更加详细的数据库信息要增加EXTENDED关键字
案例:
desc database db_hive3;
desc database extended db_hive3;
3. 修改数据库
用户可以修改数据库的dbproperties、location、owner user等信息。
注:当修改数据库的location信息时,对于数据库当前已经存在的表,不会改变表的路径信息,但是会修改在数据库中新创建的表的父目录信息。
语法:
--修改dbproperties
ALTER DATABASE database_name SET DBPROPERTIES (property_name=property_value, ...);
--修改location
ALTER DATABASE database_name SET LOCATION hdfs_path;
--修改owner user
ALTER DATABASE database_name SET OWNER USER user_name;
案例:
ALTER DATABASE db_hive3 SET DBPROPERTIES ('create_date'='2022-11-20');
4. 删除数据库
语法:
DROP DATABASE [IF EXISTS] database_name [RESTRICT|CASCADE];
注:RESTRICT为严格模式,默认为该模式
CASCADE为级联模式,假设数据库中存在表时使用该关键字,否则删除失败
案例:
drop database db_hive2;--数据库为空时
drop database db_hive3 cascade;--数据库存在表时
5. 切换数据库
USE database_name;