创建表格之前,如果默认创建到default,则不需要任何修改。
也可以新建一个数据库:
create database a;//直接创建,如果数据库已经存在,则会出错。
create database if not exist a; //如果不存在a库,则新建a库,工作中使用比较方便。
create database if not exist a commit ‘this is for test’;//如果不存在则建立数据库,commit 添加描述;
desc database test;//查看新建的数据库,可以看到批注
显示数据库:
show databases;
数据库多的时候,可以使用模糊查询:
show databases like \'d.*\';
创建完的数据库在/user/hive/warehouse/a.db,我们可以去查看,已经存在这个目录。
删除数据库:(如果存在表,则删除失败)
drop database b;
强制删除数据库:(存在表时需强制删除)
drop database b cascade;
删除之前可以判断一下:
drop database if exists b cascade;
创建表:
create table if not exists t3 (id int,name string);
加上external是指创建外部表,删除表格,不删除数据,如果是内部表,数据和原数据都会被删除。
row format ....上传数据时分隔类型,可以编写
stored as... 存储的类型
location...上传的位置可以指定
创建指定路径表:
create table if not exists a.t5(name string,salary float) location \'/user/hive/warehouse/a.db/t5\';
创建完表之后也可以查看一下
desc t3;或者 desc a.t3;
查看数据库a中的表:
show tables in a;
查看数据库中的一张表(linux命令下):
hadoop fs -ls /user/hive/warehouse/a.db/t_user;
查看数据(linux命令下):
hadoop fs -cat /user/hive/warehouse/a.db/t_user/stu3.txt;
修改表名:
alter table t5 rename to t6;
增加列:
alter table t6 add columns(id int,age int);
从一个表向另外一个表插入数据:
create table t7 as select * from t6;
数据上传至外部表:
hadoop fs -put ./stu.txt /data/stocks;
可以去官网查看建表语法还有数据类型,官网: