Lindorm宽表SQL是一种类型化语言,支持丰富的数据类型集。本文介绍Lindorm宽表SQL支持的数据类型。

使用限制

  • 单个主键列最大长度2 KB。
  • 所有主键列长度之和不超过30 KB。
  • 单个非主键列最大长度不超过2 MB。

基础数据类型

数据类型 对应的Java类型 描述
BOOLEAN java.lang.Boolean 长度为1字节。定长精确数值类型。值域取决于长度,以及是否为无符号。0表示false,1表示true。
TINYINT java.lang.Byte 长度为1字节。定长精确数值类型。值域取决于长度,以及是否为无符号。
SMALLINT java.lang.Short 长度为2字节。定长精确数值类型。值域取决于长度,以及是否为无符号。
INTEGER java.lang.Integer 长度为4字节。定长精确数值类型。值域取决于长度,以及是否为无符号。
BIGINT java.lang.Long 长度为8字节。定长精确数值类型。值域取决于长度,以及是否为无符号。
FLOAT java.lang.Float 长度为4字节。定长非精确数值类型。值域和精度取决于长度、precision和scale,以及是否为无符号。
DOUBLE java.lang.Double 长度为8字节。定长非精确数值类型。值域和精度取决于长度、precision和scale,以及是否为无符号。
DECIMAL(precision,scale) java.lang.BigDecimal 变长二进制类型。decimal为十进制,消耗的字节数随精度增加而增加,通常用于存储金额等高精度数据,对于精度要求不高的场景(如监控),可以使用float或double。定义类型时需要指定precision和scale。
  • precision:最大一共有多少位,值域是[1,38]。
  • scale:小数点后最大有多少位,值域是[0,precision]。
VARCHAR/CHAR java.lang.String 变长二进制类型,支持中文。
BINARY(N) byte[] 定长二进制类型,N表示字节数。写入数据时,包括两种情况。
  • 若给出的值不足N字节,系统会自动在末尾将缺的字节用0补充。
  • 若超出N字节,则自动截断。
VARBINARY byte[] 变长二进制类型,作为主键时只能是最后一列主键。
DATE java.sql.Types#DATE 日期时间。
TIME java.sql.Types#TIME 时间类型。
TIMESTAMP java.sql.Types#TIMESTAMP 时间戳。

不支持的数据类型

数组等复杂类型。