跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

NULL 类型

NULL值表示缺少值,与空字符串、数字0或空容器不同。悦数图数据库开发版在表达式类型推导中使用NULL类型描述尚未确定具体材料类型的NULL值。

NULL类型是非物质值类型,不能作为点或边的属性类型。

查看 NULL 类型

使用typeof()函数可以查看NULL表达式的类型:

RETURN typeof(NULL)

返回:

+--------------+
| typeof(NULL) |
+--------------+
| NULL         |
+--------------+

NULL 类型、NULL 值和可否为 NULL

概念 示例 含义
NULL类型 typeof(NULL) 当无法根据上下文确定更具体的类型时,为独立NULL表达式推断出的类型
NULL值 name = NULL 表示当前没有值
可为 NULL 的类型 name STRING DEFAULT NULL 存储位置允许包含NULL值
不可为 NULL 的类型 id INT64 NOT NULL 存储位置不能包含NULL值

例如:

'''
VALUE name STRING = NULL
RETURN typeof(name), name
'''

+--------------+------+
| typeof(name) | name |
+--------------+------+
| STRING       | null |
+--------------+------+

变量name的声明类型是STRING,其当前值是NULL。因此,NULL值不表示变量或属性的声明类型已变为NULL。

定义属性时同样如此:

NODE Person (
  LABEL Person {
    id INT64 NOT NULL,
    name STRING DEFAULT NULL,
    PRIMARY KEY (id)
  }
)

属性name的类型是STRING,DEFAULT NULL表示其默认值为NULL。不能将属性声明为name NULL。

NULL 类型的使用场景

NULL类型主要用于表达式类型推导。例如,单独的NULL表达式不包含足够的信息来确定它是字符串、数值还是日期。将它用于具有具体类型的上下文后,系统会按照该上下文处理NULL值。

NULL也可以出现在列表、集合或映射等容器表达式中。容器中出现其他非NULL值时,系统根据这些值推导容器的元素类型。

相关操作

Note

判断值是否为NULL时,应使用IS NULL或IS NOT NULL,不要使用普通等值比较。