表达式概览¶
表达式通常由常量、变量、运算符、函数调用及其他多种元素组合而成,且其计算结果为单个值。GQL 支持多种类型的表达式,比如函数调用表达式、匹配图元素标签的标签表达式、计算为单个常量或值的值表达式等。本文介绍 GQL 支持的表达式类型。
函数¶
函数是基于预先定义的算法将输入参数映射为返回值的命令。在本文档中,为了便于解释说明,我们使用函数签名来介绍和标识不同的函数。
GQL 提供了一组内置函数用于方便查询。您可以运行SHOW FUNCTIONS命令查看所有内置函数。
GQL 支持以下类型的函数:
函数签名¶
函数签名定义了函数名称、入参的名称和数据类型,以及返回值的数据类型。
下面是函数element_id()的签名示例:
element_id(n: NODE) -> INT64
其中:
element_id是函数名称。n是入参的名称。入参的名称可以是值表达式的返回值。NODE是入参的数据类型。可以通过SHOW FUNCTION <function_name>命令查看每个函数的入参支持的数据类型。UINT64是返回值的数据类型。可以通过SHOW FUNCTION <function_name>命令查看返回值的数据类型。- 若函数是可变参数函数,则其最后一个入参末尾会带有省略号(
...)标记。
NULL 行为¶
NULL 行为是函数在入参中出现NULL值时的行为。GQL 定义了以下 NULL 行为:
- 默认:如果函数的任意入参为
NULL值,则函数返回NULL值。 - 忽略:函数忽略入参中的
NULL值。 - 错误:如果函数的任意入参为
NULL值时,返回错误。 - 通用:如果函数的任意入参为
NULL值时,返回结果根据不同函数进行不同的处理。
关于每个函数的 NULL 行为,请参见相应函数的文档。
运算符¶
运算符是对一个或多个运算对象执行运算的符号或关键字。有关 GQL 支持的运算符的更多信息,请参见运算符。
谓词¶
谓词指定了一个计算结果为布尔值的条件。GQL 支持以下类型的谓词:
值表达式¶
值表达式指定了一个值或常量。GQL 支持以下类型的值表达式:
- 聚合表达式:从多个值计算出单个值。
- 变量表达式:返回变量的值。
- 条件表达式:根据一组条件返回值。
- 常量表达式:返回常量。
- 构造表达式:从一组值构造单个值。
- 函数表达式:返回函数的计算结果。
- 逻辑表达式:返回布尔值。
- 属性表达式:返回属性的值。
- 子查询表达式:返回子查询的值。
- 类型转换表达式:将值转换为不同的数据类型。
- 匿名表达式:返回匿名函数的计算结果。
标签表达式¶
标签表达式指定一个或多个用于标识图元素的标签。有关更多信息,请参见标签表达式。