一、数值类型
- 整型
TINYINT (1字节整数)
SMALLINT (2字节整数)
INT/INTEGER (4字节整数)
BIGINT (8字节整数)- 浮点型
FLOAT (4字节浮点数)
DOUBLE (8字节双精度浮点数)
二、时间类型
- TIMESTAMP (时间戳) (包含年月日时分秒的一种封装)
- DATE (日期)(只包含年月日)
三、字符串类型
- STRING (不设定长度)
- VARCHAR (字符串1-65355长度,超长截断)
- CHAR (字符串,最大长度255)
四、其他类型
- BOOLEAN(布尔类型):true false
- BINARY (二进制)
五、复合类型
- array数组类型
一组有序字段,字段类型必须相同ARRAY<data_type>
eg:array(“a”,”b”,”c”)- Maps:和Java中的Map相同,即存储K-V对的;
一组无序的键/值对,键的类型必须是原子的,值可以是任意类型,同一键映射的值得类型必须相同
MAP<primitive_type, data_type>
eg:map(“a”,1,”b”,2)- Structs:一组由任意数据类型组成的结构
一组命名的字段,字段类型可以不同
STRUCT<col_name : data_type, ...>
eg:struct(“a”,1,2,3)
**复杂数据类型的声明必须使用尖括号指明其中数据字段的类型。
create table t_eg(
col1 ARRAY< INT>,
col2 MAP< STRING,INT>,
col3 STRUCT< a:STRING,b:INT,c:DOUBLE>);