模糊查询表

show tables 'KHDX'

创建表

--建表:
create table tab_test(
name string,
age int,
num1 double,
num2 bigint,
msg varchar(80)    --最后一个字段后面不能有  ','  号
)
partitioned by (p_age int,p_name string) --分区信息
row format delimited fields terminated by ',' --数据中,属性间用逗号分隔
stored as textfile location '/tab/test/tab_test';  --保存路径,最后也可带'/' 即写成 '/tab/test/tab_test/'

-- stored as orc ; orc类型的表(txt / csv 文件;无需表头,行尾无需',',数据文件保存为unix utf-8 无bom格式;
--可以借助textfile类型的临时表插入数据;插入时,要注意字段顺序对应一致。

也可以是以下型式

--指定分区,追加插入;最好不要用 'seletc *  ' 表字段变化时,*指代的内容不一样
insert into table tab_test_orc partition(p_age=10, p_name='lucy') select name,age,num1,num2,msg from tab_test_temp;
--指定分区,覆盖插入
insert overwrite table tab_test_orc partition(p_age=10,p_name='lucy') select name,age,num1,num2,msg from tab_test_temp;

创建临时表

create temporary view tmp as select * from table;

查看表结构

desc khdx_hy;   -- 显示表khdx_hy的表结构
desc formatted khdx_hy; -- 格式化表khdx_hy的表结构信息,信息更详细,包括在hdfs的存储位置
show partitions khdx_hy; -- 显示表khdx_hy的分区信息
show create table khdx_hy; -- 查看建表语句

修改表结构

alter table myDatabase.nbzz_ckmxz add partition(tjrq='20171231') add partition(tjrq='20180101')  -- 手动给分区表增加2个分区

alter table myDatabase.nbzz_ckmxz drop if exists partition (tjrq='20171231');   -- 手动删除分区表某个分区

alter table myDatabase.nbzz_ckmxz add columns (fh string);     -- 追加字段

alter table myDatabase.nbzz_ckmxz change hydh hydh1 string;          -- 修改字段hydh名称为hydh1,类型为string

drop table myDatabase.nbzz_ckmxz;  -- 删除表

alter table myDatabase.tmp_nbzz_ckmxz rename to myDatabase.nbzz_ckmxz;  -- 重命名表

表操作

truncate table tab_test;   --删除表数据, 执行后,分区依然存在
truncate table tab_test partition(p_age=10,p_name='Tom'); --删除某分区

select * from myDatabase.khdx_hy order by hydh limit 10;    -- 查询表,显示前10条记录。

insert overwrite table myDatabase.tmp_khdx_hy select * from myDatabase.khdx_hy;  -- 用khdx_hy的数据覆盖tmp_khdx_hy数据;

insert into myDatabase.tmp_khdx_hy select * from myDatabase.khdx_hy;   -- 用khdx_hy的数据追加tmp_khdx_hy数据中,不覆盖原来数据。

load data local inpath '/home/myDatabase/data/org_info.txt' overwrite into table myDatabase.org_info ;  -- 从文件中导入数据到表中

load data local inpath '/home/myDatabase/data/t_ma_fct_etl_acct_liyang_20171231.dat' overwrite into table myDatabase.T_MA_FCT_ETL_ACCT partition(tjrq="20171231");
 -- 从文件导入数据至表的某个分区。

insert overwrite directory '/home/myDatabase/data/khdx_hy.txt'  row format delimited  fields terminated by '\\t' select * FROM myDatabase.KHDX_HY;
 -- 从表khdx_hy导出数据至 hdfs 目录khdx_hy.txt