目录
一:基本数据类型
数值型
TINYINT — 微整型,只占用1个字节,只能存储0-255的整数。
SMALLINT– 小整型,占用2个字节,存储范围–32768 到 32767。
INT– 整型,占用4个字节,存储范围-2147483648到2147483647。
BIGINT– 长整型,占用8个字节,存储范围-2^63到2^63-1。
布尔型BOOLEAN — TRUE/FALSE
浮点型FLOAT– 单精度浮点数。
DOUBLE– 双精度浮点数。
字符串型STRING– 不设定长度。
日期类型
1,Timestamp 格式“YYYY-MM-DD HH:MM:SS.fffffffff”(9位小数位精度)
2,Date DATE值描述特定的年/月/日,格式为YYYY-MM-DD。
二:复杂数据类型
1:array
create table testArray(
name string,
weight array<string>
)row format delimited
fields terminated by '\t'
COLLECTION ITEMS terminated by ',';
小明 140,160,180
小华 160,200,180
注意:这个与java中数组一样,可以通过下标取值
例如:取第一年的体重
select name,weight[0] from testArray;
2:map
create table scoreMap(
name string,
score map<string,int>
)ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ','
MAP KEYS TERMINATED BY ':';
小明 语文:91,数学:110,英语:40
小红 语文:100,数学:130,英语:140
注意:可以通过key取value
例如:取语文成绩
select name ,score['语文'] from scoreMap;
3:struct
create table scoreStruct(
name string,
score struct<course:string,score:int,course_id:int,tearcher:String>
)ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ',';
小明 语文,91,000001,余老师
小红 数学,100,000002,体育老师
注意:这个可以类比于java中对象
例如:取课程的名称和分数
select name,score.course,score.score from scoreStruct;