Hive常用基础表库操作语句

1、对数据库的操作

create database hive_db;  -- 创建数据库hive_db

create table hive_db.test;  -- 在数据库hive_db中创建test表(字段内容及其格式省略)

-- 创建数据库student_db,但是在hdfs中显示student.db,在hive控制端中显示studentdb(在有location的情况下)
create database student_db location '/user/hive/student.db';  

create database if not exists hive_db;   -- 创建时判断是否存在

create database teacherdb comment "数据库teacherdb的备注"; -- 创建并且添加库备注

show databases like 'hive*';  -- 结果为hive_db 

describe database hive_db;  -- 显示数据库的信息

truncate table d_trzd;    --清空表数据

drop database hive_db;  -- 这种方式只能删除空数据库

drop database studentdb cascade;  -- 强制删除非空数据库

 

2、对表的操作

create table if not exists hive_db.t1(字段);  -- 在数据库hive_db中创建表t1

-- 在数据库hive_db中创建表t1并且指定分隔符\t
create external table hive_db.t1(字段) row format delimited fields terminated by '\t';

show tables in hive_db like "t*";  -- 在数据库hive_db中寻找以t开头的表。

create table student1 as select * from stu;  -- 复制表及其数据

describe extended records;  -- 查看表信息

describe formatted records;  -- 查看表详细信息

-- 修改分隔符为制表符\t
ALTER TABLE table_name SET SERDEPROPERTIES ('field.delim' = '\t' , 'serialization.format'='\t');

   2.1、内部表与外部表的相互转换:

alter table student set tblproperties("EXTERNAL"="TRUE");  -- 内部表转换为外部表

alter table student set tblproperties("EXTERNAL"="FALSE");  -- 外部表转换为内部表

   2.2、分区表(分区在hdfs上其实是目录,分区名不是表结构中的字段名而是在创建表和分区时另外加的):  

create table stu_partition(id int,name string);

partitioned by (month string);

row format delimited fields terminated by '\t';

-- 此表名为stu_partition按照月份来分区。

-- 上传数据到分区表:

load data local inpath '/home/hdc/Document/student1.txt' into table stu_partition partition(month="202006");

-- 分区表查找:

select * from stu_partition;  -- 查找分区表中的所有记录;

select * from stu_partition where month="202006";  -- 查找分区表中分区名202006中的所有记录  

-- 查看分区:

show partitions stu_partition;

-- 增加分区:

alter table stu_partition add partition (month="202008");

alter table stu_partition add partition (month="202009") partition (month="202010");

-- 删除分区:
alter table stu_partition drop partition(month="202008");

alter table stu_partition drop partition(month="202009"),partition (month="202010");

  注释:二级分区指的是2个分区字段,按照字段的顺序来设置分区顺序,例如:partition(month="202009",day="01")就是一个二级分区,其目录结构是day文件夹是month文件夹的子文件夹。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值