下一篇:Hive学习(三):Hive数据类型
数据库
创建数据库
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] 数据库名
[COMMENT 注释]
[LOCATION hdfs存储路径]
[WITH DBPROPERTIES (属性名=属性值, ...)];
-
DATABASE|SCHEMA:意义相同
-
WITH DBPROPERTIES:设置一些自定义键值对
可以到hdfs中看看,可以发现数据库就是一个文件夹
删除数据库
DROP (DATABASE|SCHEMA) [IF EXISTS] 数据库名 [RESTRICT|CASCADE];
RESTRICT:默认设置,如果数据库中有表则删除失败
CASCADE: 强制删除
修改数据库
官方文档各版本能修改的数据库信息
ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...); -- (Note: SCHEMA added in Hive 0.14.0)
ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role; -- (Note: Hive 0.13.0 and later; SCHEMA added in Hive 0.14.0)
ALTER (DATABASE|SCHEMA) database_name SET LOCATION hdfs_path; -- (Note: Hive 2.2.1, 2.4.0 and later)
ALTER (DATABASE|SCHEMA) database_name SET MANAGEDLOCATION hdfs_path; -- (Note: Hive 4.0.0 and later)
其他
show databases; -- 查看所有数据库
use 数据库名; -- 使用数据库
desc database [extended] 数据库名; -- 查看数据库详细信息
show create database 数据库名; -- 查看数据库建表语句
表
创建表
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [数据库名.]表名
[(列名 类型 [COMMENT 列注释], ...)]
[COMMENT 表注释]
[PARTITIONED BY (列名 数据类型 [COMMENT 列注释], ...)]
[CLUSTERED BY (列名, 数据类型, ...) [SORTED BY (列名 [ASC|DESC], ...)] INTO 桶数量 BUCKETS]
[ROW FORMAT row_format]
[LOCATION 存储在hdfs的路径]
[TBLPROPERTIES (属性名=属性值, ...)];
- TEMPORARY:临时表,当前会话有效
- EXTERNAL:外部表,由hdfs管理的表
- ROW FORMAT:hive解析数据所使用的分隔符
- DELIMITED [FIELDS TERMINATED BY char]:字段值分隔符
- [COLLECTION ITEMS TERMINATED BY char]:集合元素分隔符(包括array,struct类型)
- [MAP KEYS TERMINATED BY char]:key-value分隔符
- [LINES TERMINATED BY char]:行分隔符
- DELIMITED [FIELDS TERMINATED BY char]:字段值分隔符
hdfs中看一下,表就是数据库文件夹下的一个文件夹
删除表
DROP TABLE [IF EXISTS] 表名
清空表
TRUNCATE [TABLE] 表名
修改表
列举一些
-- 修改表名
ALTER TABLE 表名 RENAME TO 新表名;
-- 增加列
ALTER TABLE 表名 ADD COLUMNS (列名 数据类型);
-- 修改列定义
ALTER TABLE 表名 CHANGE 列名 新列名 数据类型;
-- 替换列
ALTER TABLE 表名 REPLACE COLUMNS (列名 数据类型, ...);
其他
-- 查看有哪些表
show tables;
show tables in 数据库名;
show tables like 'de*';
-- 查看表信息
desc 表名;
desc extended 表名; -- 详细
desc formatted 表名; -- 详细,格式好