整体概述
create database 用于创建新的数据库
create (database|schema)[if not exists] database_name
[comment database_comment]
[location hdfs_path]
[with dbproperties(property_name=property_value,...)];
实例:创建数据库kox2102
create database if not exists kox2102
comment "this is my db"
with dbproperties ('createdBY'='Allen');
describe database [EXTENDED] db_name;
use kox2001;
drop database database_name [RESTRICT|CASCADE];
-- 更改数据库属性
alter database database_name SET DBPROPERTIES (property_name=property_value,...);
-- 更改数据库所有者
alter database database_name SET OWNER USER userl
-- 更改数据库位置
alter database database_name SET LOCATION hdfs_path;
整体概述
drop table table_name;
truncate table_name;
-- 更改表名
alter table table_name RENAME TO new_table_name;
-- 更改表属性
alter table table_name SET TBLPROPERTIES (property_name = property_value,...);
-- 更改表注释
alter table table_name SET TBLPROPERTIES ('comment' = 'new comment for student table');
-- 更改SerDe属性
alter table table_name SET SERDE serde_class_name [WITH SERDEPROPERTIES(property_name = property_value,...)];
alter table table_name [PARTITION partition_spec] SET SERDEPROPERTIES serde_properties;
alter table table_name SET SERDEPROPERTIES('field.delim' = ',');
-- 移除SerDe属性
alter table table_name [PARTITION partition_spec] UNSET SERDEPROPERTIES (property_name,...);
-- 更改表的文件存储格式 该操作仅更改表元数据,现有数据的任何转换都必须在Hive之外进行。
alter table table_name SET FILEFORMAT file_format;
-- 更改表的存储位置路径
alter table table_name SET LOCATION "new location";
-- 更改列名称/类型/位置/注释
create table test_change (a int, b int, c int);
-- a 列名修改为a1
alter table test_change CHANGE a a1 int;
-- a1列名改为a2,并将类型改为string,放在b列后面
alter table test_change CHANGE a1 a2 STRING AFTER b;
-- c列改为c1,并放在列首
alter table test_change CHANGE c c1 int FIRST;
--注释
alter table test_chage CHANGE a1 a1 int comment 'this is column a1';
-- 添加替换列
alter table table_name ADD|REPLACE COLUMNS (col_name data_type,...);
整体概述
-- 一次添加一个分区
alter table table_name ADD PARTITION (dt='20170101') location '/user/hadoop/warehouse/table_name/dt=20170101';
-- 一次添加多个分区
alter table table_name ADD PARTITION (dt='2008-08-08',country='us') location '/path/to/us/part080808' PARTITION (dt='2008-08-09',country='us') location '/path/to/us/part080809';
-- 重命名分区
alter table table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;
alter table table_name PARTITION (dt='2008-08-09') RENAME TO PARTITION (dt='20080809');
-- 删除分区
alter table table_name DROP [IF EXISTS] PARTITION (dt='20080-08-08',country='us');
alter table table_name DROP [IF EXISTS] PARTITION (dt='2008-08-08',coountry='us')PURGE--直接删除
-- 修改分区
alter table table_name PARTITION (dt='2008-08-09')SET FILEFORMAT file_format;
-- 更改分区位置
alter table table_name PARTITION (dt='2008-08-09')SET LOCATION 'new location';
整体概述
-- 显示所有数据库 SCHEMAS 和 DATABASES的用法 功能一样
show database;
show schemas;
-- 显示当前数据库所有表/视图/物化视图/分区/索引
show tables;
SHOW TABLES [IN database_name]; --指定某个数据库
-- 显示当前数据库下所有视图
Show Views;
SHOW VIEWS 'test_*' --显示所有与test_相关的
SHOW VIEWS FROM test1; --显示test1
SHOW VIEWS [IN/FROM database_name];
-- 显示当前数据库下所有物化视图
SHOW MATERIALIZED VIEWS [IF/FROM database_name];
-- 显示表分区信息,分区按字母顺序列出,不是分区表执行该语句会报错
show partitions table_name;
-- 显示表/分区的扩展信息
SHOW TABLE EXTENDED [IN|FROM database_name] LIKE table_name;
show table extended like student;
-- 显示表的属性信息
SHOW TBLPROPERTIES table_name;
show tbproperties student;
-- 显示表、视图的创建语言
SHOW CREATE TABLE ([db_name]table_name|view_name);
show create table student;
-- 显示表中的所有列,包括分区列
SHOW COLUMNS (FROM|IN) table_name [(FROM|IN)db_name];
show columns in student;
-- 显示当前支持的所有自定义和内置函数
show functions;
-- 查看表信息
desc extended table_name;
-- 查看数据库相关信息
describe database database_name;