支持的强制性 GQL 功能

与可选 GQL 功能不同,强制性 GQL 功能未分配 GQL 功能 ID 代码。以下表格按其在 ISO/IEC 39075:2024(en) GQL 标准 中出现的顺序排列。

GQL 标准子条款 描述 文档 评论

4.11

图模式匹配

4.13

GQL 对象类型

包括:NODE (ANY NODE, VERTEX, ANY VERTEX) 和 RELATIONSHIP (ANY RELATIONSHIP, EDGE, ANY EDGE)。

4.16

预定义值类型

包括:BOOLEAN (BOOL), FLOAT, INTEGER (SIGNED INTEGER, INT), 和 STRING (VARCHAR)。

Cypher 支持 TRUEFALSENULL 的布尔类型谓词,但不支持 GQL 关键字 UNKNOWN

13.2

<插入语句>

13.3

<设置语句>

SET

GQL 的 SET 没有顺序依赖关系,因为所有右侧操作都在任何赋值发生之前完成。在 Cypher 的 SET 中,行的顺序可能会影响结果,因为执行期间进行的更改可能取决于赋值的顺序。在 Neo4j 中保证行顺序的唯一方法是使用 ORDER BY

13.4

<删除语句>

13.5

<删除语句>

14.4

<匹配语句>

14.9

<排序和分页语句>

14.10

<基本结果语句>

14.11

<返回语句>

GQL 定义了指定 RETURN ALL 的选项(在功能上等同于单独使用 RETURN)。这目前在 Cypher 中不可用。

16.2

<限制子句>

16.4

<图模式>

16.5

<插入图模式>

16.6

<排序子句>

16.7

<路径模式表达式>

16.8

<标签表达式>

16.9

<路径变量引用>

16.11

<图模式量词>

16.17

<排序规范列表>

16.19

<偏移子句>

19.3

<比较谓词>

19.4

<存在谓词>

19.5

<空谓词>

19.6

<值类型谓词>

19.7

<规范化谓词>

20.2

<值表达式主语>

20.3

<值规范>

GQL 定义了 SESSION_USER 值表达式,它允许在查询中访问用户的用户名。在 Cypher 中,可以使用 SHOW CURRENT USER 命令 查看当前用户详细信息。

20.7

<情况表达式>

20.9

<聚合函数>

Cypher 和 GQL 在查询返回 0 行时,对 sum() 函数的 NULL 值处理方式不同。例如,在空表上执行 RETURN sum(<expr>) 在 GQL 中返回 NULL,而在 Cypher 中返回 0

20.11

<属性引用>

20.21

<数值表达式>

20.22

<数值函数>

20.23

<字符串值表达式>

20.24

<字符字符串函数>

在 GQL 中,TRIM() 仅删除空格字符。在 Cypher 中,trim() 删除所有空白字符。

21.1

名称和变量

Cypher 支持 GQL 的词法元素,但有以下注意事项

  • GQL 允许使用扩展参数标识符。例如:RETURN $0hello 在 GQL 中允许,但在 Cypher 中不允许。

  • GQL 允许使用非变量的标识符,这些标识符可以使用反引号和引号分隔。Cypher 仅允许使用反引号。例如:MATCH (n) RETURN n."a prop" 在 GQL 中允许,但在 Cypher 中不允许。

22.15

分组操作