1. 程式人生 > >HIVE的ddl操作

HIVE的ddl操作

hive的ddl操作 庫:

修改資料庫不支援
建立資料庫:create database	mading;
切換資料庫:use mading;
檢視資料庫列表:show databases;
	//模糊查詢:show databases like 'test*';
檢視正在使用的資料庫:show current_database();
檢視資料庫的詳細資訊:desc database mading;
刪除資料庫:drop database mading;//只能刪除空資料庫
		drop database cascade mading;//	可以刪除非空資料庫

表:

1.
external 外部表 ,刪除時只刪除元資料,保留原始資料,建表指定表的儲存目錄
managed 內部表 ,預設,刪除時和元資料一起,建表用預設路徑可以
2.
分割槽:為了提高查詢效能,對龐大的表進行切分,把經常查詢的欄位作為分割槽欄位,把資料劃分成不同的資料目錄,這樣就避免的全表掃描,
分桶:1可以提升抽樣效率,2可以提升join效能。相對於分割槽表顆粒度更細,按照分桶欄位劃分為不同的檔案,指定分桶欄位和分桶個數,分桶欄位.hashCode&分桶個數
3.
fields terminated by 指定列分隔符
lines terminated by 指定行分隔符
items terminated by 指定集合中元素的分隔符

查看錶的描述資訊

desc 表名
desc extended 表名
desc formatted 表名

查看錶的列表資訊

show tables;
show tables in database_1;//檢視資料庫中的表
show tables like '';//模糊查詢

修改表

1.修改表名:
alter table 表名 rename to 新表名
2.修改表字段
alter table 表名 change 欄位 新欄位 型別;
3.增加表字段
alter table 表名 add columns (score int);
4.刪除表字段
alter table 表名 delete score;
5.替換全表的所有欄位
alter table 表名 replace columns(xxx string);
6.	清空表資料,但是會保留表結構
truncate table stu;
7.

載入資料到表

load data inpath '/stuin' into table stu;

建表案例 950003,劉梓晨,女,17,IS

1.建內部表

create table if not exsits stu(id int,name string,sex string,age int comment '16-24',department string) comment 'mystudent' row format delimited fields terminated by ',' stored as textfile location '/user/stu';

2.建外部表

create external table if not exsits stu(id int,name string,sex string,age int comment '16-24',department string) comment 'mystudent' row format delimited fields terminated by ',' stored as textfile location '/user/stu';

3.建一個分割槽表

分割槽欄位一定不能是建表語句中的欄位
create table stu(id int,name string,sex string,department string) partitioned by(age int) row format delimited fields terminated by ',';
新增分割槽的語法:
alter table stu add if not exsits partition(age=18);
修改分割槽的儲存路徑
alter table stu partition (age =17) set location '';
刪除分割槽
alter table stu drop if exsits partition (age =17);

4.建一個分桶表

create table stu(id int,name string,sex string,department string) partitioned by(age int) clustered by (name) sorted by (age desc) into 8 buckets row format delimited fields terminated by ',';

5.ctas 建表語句

create table as select ... from ... 

6.表複製

like關鍵字
只會複製表結構,不會複製表資料
create table stu1 like stu;

其他輔助命令

show functions;//檢視hive函式列表