1.HQL DDL语句--建表(完整格式)
create [external] table [if not exists] 表名(
列名1 数据类型 [comment] '数据描述信息',
列名2 数据类型 [comment] '数据描述信息',
......
) comment '表描述信息'
partitioned by [分区]
clustered by [分桶]
[切割方式]
[存储方式]
[存储位置]
[表属性信息] -- 中括号为可选项
2.HQL涉及到的常用的数据类型
原生类型:
int 整数
double 小数
string 字符串
timestamp 时间戳, 单位: 毫秒
date 日期
复杂类型;
array 列表(序列)
map 映射
struct 结构体
union 联合体
3.HQL DDL语句--操作
-- 1. 查看所有的数据表
show tables;
-- 2. 查看表信息.
desc 表名;-- 3. 修改表名
alter table 旧表名 rename to 新表名;-- 4.查看表结构(列名, 数据类型)
desc 表名;
select * from 表名;-- 5 给表新增列.
alter table 表名 add columns (列名 数据类型 comment '列描述信息');-- 6 单独修改指定的列. 注意: string不能直接转成int类型, 反之可以.
alter table 表名 change 旧列名 新列名 数据类型;
-- 7. 手动往表中添加数据.
insert into 表名 values(内容1,内容2,...);-- 8. load方式加载数据到上述的表中.
load data local inpath '本地路径' into table 表名;
4.HQL DML语句--数据导入和导出
数据导入
格式:
insert into | overwrite table 表名 [partition by(分区字段1, 分区字段2...)] select 语句;
格式解释:
1. into是追加, overwrite是覆盖.
2. into的时候, table关键字可以省略不写, overwrite的时候, table关键字必须写.
3. 上述的语句, 底层会转成MR来执行.数据导出
格式:
insert overwrite [local] directory '存储该文件的路径' [row format delimited fields terminated by '行格式分隔符']
select 语句;细节:
1. 不写local就是HDFS路径, 写了就是Linux路径.
2. 行格式分隔符, 表示导出文件后, 内容之间的 分隔符.
3. 导出的时候, 是覆盖导出的, 建议要导出到的目录, 内容为空, 否则啥都没了.