数据类型
本章节会介绍 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
