数据类型
本章节会介绍 Ignite 支持的 SQL 数据类型列表,例如字符串、数值和日期/时间类型。
每个 SQL 类型都映射到 Ignite 原生支持的编程语言或驱动的特定类型。
1.布尔类型
1.1.BOOLEAN
可选值:TRUE
和 FALSE
。
2.数值类型
2.1.TINYINT
可选值:[-128, 127]
。
2.2.SMALLINT
可选值:[-32768, 32767]
。
2.3.INT
可选值:[-2147483648, 2147483647]
。
别名:INTEGER
2.4.BIGINT
可选值:[-9223372036854775808, 9223372036854775807]
。
2.4.DECIMAL
可选值:可选择精度的确切数。
默认精度:32767。
最大精度:32767。
默认标度:0。
最大标度:16383
2.4.1.Ignite中Decimal的精度和标度
Ignite 在处理数值时具有以下特性:
标度可以大于精度。这时该列将仅包含小数值,并且小数点右侧的 0 位数必须与标度减去精度相同,例如如果使用以下定义:
sqlNUMERIC(3, 6)
可以存储介于
-0.000999
(含) 和0.000999
(含)之间的值。BigDecimal
数据类型派生为DECIMAL(28, 6)
,如果小数点后超过 6 位数字,它们将被截断。如果传递的值大于精度,则会发生超出范围的异常。要存储较大的数值,需要强制转换为自定义精度,例如
CAST(? as DECIMAL(100, 50))
。
2.5.FLOAT
可选值:单精度(32 位)IEEE 754 浮点数。
别名:REAL
特殊值:NaN
、-Infinity
、+Infinity
。
2.6.DOUBLE
可选值:双精度(64 位)IEEE 754 浮点数。
别名:DOUBLE PRECISION
特殊值:NaN
、-Infinity
、+Infinity
。
3.字符字符串类型
3.1.VARCHAR
可选值:Unicode 字符串。
别名:CHARACTER VARYING
默认长度:65536
最大长度:65536
3.2.CHAR
固定长度的 Unicode 字符串,用空格填充。
默认长度:1
最大长度:65536
提示
此类型只能在表达式中使用(例如 CAST('a' AS CHAR(3))
,不能在 DDL 语句中使用,例如 CREATE TABLE
、ALTER TABLE ADD COLUMN
等,请改用 VARCHAR
。
4.二进制字符串类型
4.1.VARBINARY
可选值:二进制数据(字节数组
)。
别名:BINARY
、BINARY VARYING
默认长度:65536
最大长度:65536
5.日期和时间类型
5.1.TIME
可选值:时间数据类型,格式为 hh:mm[:ss]
。
默认精度:0
最大精度:3
5.2.DATE
可选值:日期数据类型。
格式为:yyyy-MM-dd
5.2.TIMESTAMP
警告
时间戳数据类型仅支持最高毫秒的精度(3 个符号),超过第 3 个符号的任何值都将被忽略。
可选值:时间戳数据类型,格式为 yyyy-MM-dd hh:mm:ss[.mmm]
。
默认精度:6
最大精度:9
6.其他类型
6.1.UUID
可选值:通用唯一标识符,这是一个 128 位值。
示例:7d24b70e-25d5-45ed-a5fa-39d8e1d966b9
7.隐式类型转换
在 Ignite 3 中,隐式类型转换仅限于同一类型系列中的类型,下表列出了可能的隐式转换:
类型系列 | 可用类型 |
---|---|
布尔 | BOOLEAN |
数值 | TINYINT 、SMALLINT 、INT 、BIGINT 、DECIMAL 、FLOAT 、DOUBLE |
字符型字符串 | VARCHAR 、CHAR |
二进制字符串 | VARBINARY 、BINARY |
日期 | DATE |
时间 | TIME |
日期时间 | TIMESTAMP 、TIMESTAMP WITH LOCAL TIME ZONE |
UUID | UUID |
18624049226