数值¶
nGQL 支持整数和浮点数。
整数¶
nGQL 支持带符号的 64 位整数(INT64)、32 位整数(INT32)、16 位整数(INT16)和 8 位整数(INT8)。
类型 | 声明关键字 | 范围 |
---|---|---|
INT64 | INT64 或INT |
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
INT32 | INT32 |
-2,147,483,648 ~ 2,147,483,647 |
INT16 | INT16 |
-32,768 ~ 32,767 |
INT8 | INT8 |
-128 ~ 127 |
浮点数¶
nGQL 支持单精度浮点(FLOAT)和双精度浮点(DOUBLE)。
类型 | 声明关键字 | 范围 | 精度 |
---|---|---|---|
FLOAT | FLOAT |
3.4E +/- 38 | 6~7 位 |
DOUBLE | DOUBLE |
1.7E +/- 308 | 15~16 位 |
nGQL 支持科学计数法,例如1e2
、1.1e2
、.3e4
、1.e4
、-1234E-10
。
Note
不支持 MySQL 中的 DECIMAL 数据类型。
数值的读写¶
在写入和读取不同类型的数据时,nGQL 的行为遵守以下规则:
数值类型 | 设置为 VID | 设置为属性类型 | 读取该类型的属性值得到的类型 |
---|---|---|---|
INT64 | 支持 | 支持 | INT64 |
INT32 | 不支持 | 支持 | INT64 |
INT16 | 不支持 | 支持 | INT64 |
INT8 | 不支持 | 支持 | INT64 |
FLOAT | 不支持 | 支持 | DOUBLE |
DOUBLE | 不支持 | 支持 | DOUBLE |
例如,nGQL 不支持设置 INT8 类型的 VID,但支持将 TAG 或 Edge type 的某个属性类型设置为 INT8。当使用 nGQL 语句读取 INT8 类型的属性时,获取到的值的类型为 INT64。
-
NebulaGraph 支持写入多种进制的数值:
- 十进制,例如
123456
。 - 十六进制,例如
0x1e240
。 - 八进制,例如
0361100
。
但 NebulaGraph 会将写入的非十进制数值解析为十进制的值保存。读取到的值为十进制。
例如,属性
score
的类型为INT
,通过 INSERT 语句为其赋值0xb
,使用 FETCH 等语句查询该属性值获取到的结果是11
,即将十六进制的0xb
转换为十进制后的值。 - 十进制,例如
- 将 FLOAT/DOUBLE 类型的数值插入 INT 类型的列,会将数值四舍五入取整。
最后更新:
September 4, 2023