查看
查看所有数据库名: show databases;
查看所有表名: show tables;
查看以’ad’开头的表名: show tables ‘ad*’;
查看表结构(表名为emp): desc emp;
创建
创建普通内部表: create table emp_tg(id int, name string);
创建普通内部表,并指定文件分隔符: create table emp_tg(id int, name string) row format delimited fields terminated by ‘\t’;
创建外部表,同时指定文件路径: create external table emp_wb(id int, name string) location ‘/emp’;
创建分区表: create table emp_fq(id int, name string) ?partitioned by(city string);
创建桶表: create table emp_tb(id int, name string) clustered by(id) into 3 buckets;
创建桶表前,需要需要设置“hive.enforce.bucketing”属性为 true, 使 Hive 能够识别桶:set hive.enforce.bucketing=true;
创建视图:create view view_emp as select id, name from emp_tg;
修改
修改表名: alter table emp_tg rename to emp_tg_new;
增加新列: alter table emp_tg_new add columns (addr string);
修改列名: alter table emp_tg_new change column addr address string ;
导入
本地数据导入: load data local inpath ‘/home/hadoop/emp.txt’ overwrite into table emp;
HDFS数据导入: load data inpath ‘/scott/emp.csv’ into table emp;
插入
插入一条数据: insert into emp(id, name) values (1001, ‘赵子龙’);
分区表中插入数据,指明导入的数据的分区(通过子查询导入数据): insert into table emp_fq partition(city=‘beijing’) select empno,ename from emp1 where deptno=10;
删除
删除行: delete from emp where id = 0;
丢弃某个表:drop table emp_wb;
删除视图: drop view view_emp ;
删除分区: alter table emp_fq drop partition (city= 'beijing ');
查询
简单查询: select id, name from emp;
子查询: select id, name, city from emp where city = ‘beijing’;
内连接: select tb1., tb2. from tb1 join tb2 on(tb1.id=tb2.userid);
左连接: select tb1., tb2. from tb1 left outer join tb2 on(tb1.id=tb2.userid);
右连接: select tb1., tb2. from tb1 right outer join tb2 on(tb1.id=tb2.userid);
全连接: select tb1., tb2. from tb1 full outer join tb2 on(tb1.id=tb2.userid);
半连接: select tb1.* from tb1 left semi join tb2 on (tb1.id=tb2.userid);