HIVE中数据类型分为数值类型、字符串类型、日期类型、复合类型以及其他类型。下面分别进行介绍。
数值类型(7种)
数值类型类似于JAVA中的基本数据类型
整型数值默认按照INT处理,浮点数值默认按照DOUBLE处理。
特殊情况:整型数值超出INT范围、数值后加Y/S/L后缀时,发生向其他整型类型的转换
Hive-0.11.0和Hive-0.12.0固定了DECIMAL类型的精度并限制为38位数字,从Hive-0.13.0开始可以指定DECIMAL的规模和精度,当使用DECIMAL类型创建表时可以使用DECIMAL(precision,scale)语法。DECIMAL默认为DECIMAL(10,0)。 DECIMAL类型比DOUBLE类型为浮点数提供了精确的数值和更广的范围,DECIMAL类型存储了数值的精确地表示,而DOUBLE类型存储了非常接近数值的近似值。当DOUBLE类型的近似值精度不够时可以使用DECIMAL类型,比如金融应用,等于和不等于检查以及舍入操作,当数值超出了DOUBLE类型的范围(< -10^308 or > 10^308)或者非常接近于0(-10^-308 < ... < 10^-308)时,也可以使用DECIMAL类型。
字符串类型
字符串常量使用单引号或者双引号表示.VARCHAR的长度指示器范围为1~65535,如果值长度超过定义长度,该字符串会被自动截断。
CHAR的长度是固定的,不足部分使用空格补足。