跳转至

数值

nGQL 支持整数和浮点数。

整数

nGQL 支持带符号的 64 位整数(INT64)、32 位整数(INT32)、16 位整数(INT16)和 8 位整数(INT8)。

类型 声明关键字 范围
INT64 INT64INT -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 支持科学计数法,例如1e21.1e2.3e41.e4-1234E-10

Note

不支持 MySQL 中的 DECIMAL 数据类型。

数值的读写

在写入和读取不同类型的数据时,nGQL 的行为遵守以下规则:

数值类型 设置为 VID 设置为属性类型 读取该类型的属性值得到的类型
INT64 支持 支持 INT64
INT32 不支持 支持 INT64
INT16 不支持 支持 INT64
INT8 不支持 支持 INT64
FLOAT 不支持 支持 DOUBLE
DOUBLE 不支持 支持 DOUBLE

例如,nGQL 不支持设置 INT8 类型的 VID,但支持将 TAGEdge type 的某个属性类型设置为 INT8。当使用 nGQL 语句读取 INT8 类型的属性时,获取到的值的类型为 INT64。

  • NebulaGraph 支持写入多种进制的数值:

    • 十进制,例如123456
    • 十六进制,例如0x1e240
    • 八进制,例如0361100

    但 NebulaGraph 会将写入的非十进制数值解析为十进制的值保存。读取到的值为十进制。

    例如,属性score的类型为INT,通过 INSERT 语句为其赋值0xb,使用 FETCH 等语句查询该属性值获取到的结果是11,即将十六进制的0xb转换为十进制后的值。

  • 将 FLOAT/DOUBLE 类型的数值插入 INT 类型的列,会将数值四舍五入取整。

最后更新: September 4, 2023