Source: https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/ Documentation version: v5.3.2 # 表达式概览 表达式通常由常量、变量、运算符、函数调用及其他多种元素组合而成,且其计算结果为单个值。GQL 支持多种类型的表达式,比如函数调用表达式、匹配图元素标签的标签表达式、计算为单个常量或值的值表达式等。本文介绍 GQL 支持的表达式类型。 ## 函数 函数是基于预先定义的算法将输入参数映射为返回值的命令。在本文档中,为了便于解释说明,我们使用函数签名来介绍和标识不同的函数。 GQL 提供了一组内置函数用于方便查询。您可以运行`SHOW FUNCTIONS`命令查看所有内置函数。 GQL 支持以下类型的函数: - [数学函数](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/functions/math/) - [聚合函数](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/functions/aggregate/) - [字符串函数](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/functions/string/) - [日期和时间函数](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/functions/temporal/) - [列表函数](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/functions/list/) - [图函数](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/functions/graph/) - [匿名函数](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/functions/lambda/) - [向量函数](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/functions/vector/) - [地理空间函数](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/functions/geo/) ### 函数签名 函数签名定义了函数名称、入参的名称和数据类型,以及返回值的数据类型。 下面是函数`element_id()`的签名示例: ```` element_id(n: NODE) -> INT64 ```` 其中: - `element_id`是函数名称。 - `n`是入参的名称。入参的名称可以是值表达式的返回值。 - `NODE`是入参的数据类型。可以通过[`SHOW FUNCTION `](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/data-admin/show/show-functions/)命令查看每个函数的入参支持的数据类型。 - `UINT64`是返回值的数据类型。可以通过[`SHOW FUNCTION `](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/data-admin/show/show-functions/)命令查看返回值的数据类型。 - 若函数是可变参数函数,则其最后一个入参末尾会带有省略号(`...`)标记。 ### NULL 行为 NULL 行为是函数在入参中出现`NULL`值时的行为。GQL 定义了以下 NULL 行为: - 默认:如果函数的任意入参为`NULL`值,则函数返回`NULL`值。 - 忽略:函数忽略入参中的`NULL`值。 - 错误:如果函数的任意入参为`NULL`值时,返回错误。 - 通用:如果函数的任意入参为`NULL`值时,返回结果根据不同函数进行不同的处理。 关于每个函数的 NULL 行为,请参见相应函数的文档。 ## 运算符 运算符是对一个或多个运算对象执行运算的符号或关键字。有关 GQL 支持的运算符的更多信息,请参见[运算符](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/operators/)。 ## 谓词 谓词指定了一个计算结果为布尔值的条件。GQL 支持以下类型的谓词: - [比较谓词](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/predicates/comparison/) - [EXISTS 谓词](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/predicates/exists/) - [NULL 谓词](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/predicates/null/) - [标签谓词](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/predicates/labeled/) - [ALL_DIFFERENT 谓词](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/predicates/all_different/) - [SAME 谓词](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/predicates/same/) ## 值表达式 值表达式指定了一个值或常量。GQL 支持以下类型的值表达式: - [聚合表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/expressions/aggregate/):从多个值计算出单个值。 - [变量表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/expressions/binding-variable/):返回变量的值。 - [条件表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/expressions/case/):根据一组条件返回值。 - [常量表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/expressions/constant/):返回常量。 - [构造表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/expressions/construct/):从一组值构造单个值。 - [函数表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/expressions/function/):返回函数的计算结果。 - [逻辑表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/expressions/logical/):返回布尔值。 - [属性表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/expressions/property/):返回属性的值。 - [子查询表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/expressions/subquery/):返回子查询的值。 - [类型转换表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/expressions/cast/):将值转换为不同的数据类型。 - [匿名表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/expressions/lambda/):返回匿名函数的计算结果。 ## 标签表达式 标签表达式指定一个或多个用于标识图元素的标签。有关更多信息,请参见[标签表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/expressions/label/)。