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

使用限制

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

基础数据类型

数据类型 对应的Java类型 描述
BOOLEAN java.lang.Boolean 长度为1字节。布尔型,取值为true或false。
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,以及是否为无符号。走sql拼写方式按照科学计数法进行拼写double类型。
DECIMAL(precision,scale) java.lang.BigDecimal 变长二进制类型。decimal为十进制,消耗的字节数随精度增加而增加,通常用于存储金额等高精度数据,对于精度要求不高的场景(例如监控),可以使用float或double。定义类型时需要指定precision和scale。
  • precision:最大一共有多少位,值域是[1,38]。
  • scale:小数点后最大有多少位,值域是[0,precision]。
VARCHAR / CHAR(N) java.lang.String 字符串,支持中文。
  • VARCHAR:变长字符串类型。
  • CHAR:定长字符串类型,需要指定长度N。
BINARY(N) byte[] 定长二进制类型,N表示字节数。写入数据时,包括以下两种情况。
  • 若给出的值不足N字节,系统会自动在末尾用0补充缺的字节。
  • 若超出N字节,则自动截断。
VARBINARY byte[] 变长二进制类型,作为主键时只能是最后一列主键。
DATE java.sql.Types#DATE 日期时间(仅存储日期,不存储时间,在时区转换过程中容易出现日期不对的现象,不推荐使用)。
TIME java.sql.Types#TIME 时间类型。
TIMESTAMP java.sql.Types#TIMESTAMP 时间戳。

不支持的数据类型

数组等复杂类型。