子句

本节包含 Cypher® 查询语言中所有子句的信息。

读取子句

这些子句从数据库中读取数据。

Cypher 查询中的数据流是键值对的无序映射序列——查询中的变量与数据库派生值之间可能绑定的一组。这组绑定会通过查询的后续部分进行细化和增强。

子句 描述

MATCH

指定要在数据库中搜索的模式。

OPTIONAL MATCH

指定要在数据库中搜索的模式,同时对模式中缺失的部分使用 null

投影子句

这些子句定义要在结果集中返回的表达式。所有返回的表达式都可以使用 AS 进行别名。

子句 描述

RETURN …​ [AS]

定义查询结果集包含的内容。

WITH …​ [AS]

允许查询部分链接在一起,将一个部分的结果作为下一个部分的起始点或条件。

UNWIND …​ [AS]

将一个列表展开成一系列行。

FINISH

定义一个查询不返回任何结果。

读取子子句

这些子子句必须作为读取子句的一部分进行操作。

子子句 描述

WHERE

MATCHOPTIONAL MATCH 子句中的模式添加约束或过滤 WITH 子句的结果。

ORDER BY [ASC[ENDING] | DESC[ENDING]]

紧跟在 RETURNWITH 后的子子句,指定输出应按升序(默认)或降序排序。从 Neo4j 5.24 开始,它也可以作为独立子句使用。

SKIP / OFFSET

定义从哪一行开始包含输出中的行。从 Neo4j 5.24 开始,它可以用作独立子句。

LIMIT

约束输出中的行数。从 Neo4j 5.24 开始,它可以用作独立子句。

写入子句

这些子句将数据写入数据库。

子句 描述

CREATE

创建节点和关系。

DELETE

删除节点、关系或路径。任何要删除的节点也必须显式删除所有相关关系。

DETACH DELETE

删除一个或一组节点。所有相关关系将自动删除。

SET

更新节点上的标签和节点与关系上的属性。

REMOVE

从节点和关系中删除属性和标签。

FOREACH

更新列表中的数据,无论是路径的组成部分还是聚合的结果。

读取/写入子句

这些子句既从数据库中读取数据,又向数据库中写入数据。

子句 描述

MERGE

确保图中存在一个模式。该模式要么已经存在,要么需要创建。

--- ON CREATE

MERGE 结合使用,此写入子子句指定当需要创建模式时要执行的操作。

--- ON MATCH

MERGE 结合使用,此写入子子句指定当模式已存在时要执行的操作。

CALL …​ [YIELD …​]

调用数据库中部署的过程并返回任何结果。

子查询子句

子句 描述

CALL { …​ }

评估一个子查询,通常用于联合后的处理或聚合。

CALL { …​ } IN TRANSACTIONS

在单独的事务中评估子查询。通常在修改或导入大量数据时使用。

集合操作

子句 描述

UNION

将多个查询的结果合并为一个结果集。重复项将被移除。

UNION ALL

将多个查询的结果合并为一个结果集。重复项将被保留。

多图

子句 描述

USE

确定查询或查询部分针对哪个图执行。

导入数据

子句 描述

LOAD CSV

从 CSV 文件导入数据时使用。

CALL { …​ } IN TRANSACTIONS

此子句可用于在使用 LOAD CSV 导入大量数据时防止出现内存不足错误。

列出函数和过程

子句 描述

SHOW FUNCTIONS

列出可用函数。

SHOW PROCEDURES

列出可用过程。

配置命令

子句 描述

SHOW SETTINGS

列出配置设置。

事务命令

子句 描述

SHOW TRANSACTIONS

列出可用事务。

TERMINATE TRANSACTIONS

按 ID 终止事务。

读取提示

这些子句用于在调优查询时指定规划器提示。有关这些子句的用法以及一般查询调优的更多详细信息,请参见规划器提示和 USING 关键字

提示 描述

USING INDEX

索引提示用于指定规划器应使用哪个索引(如果有)作为起点。

USING INDEX SEEK

索引查找提示指示规划器对此子句使用索引查找。

USING SCAN

扫描提示用于强制规划器执行标签扫描(后跟过滤操作)而不是使用索引。

USING JOIN

连接提示用于在指定点强制执行连接操作。

索引和约束子句

这些子句用于创建、显示和删除索引和约束。

子句 描述

CREATE | SHOW | DROP INDEX

创建、显示或删除索引。

CREATE | SHOW | DROP CONSTRAINT

创建、显示或删除约束。

管理子句

Cypher 包含用于管理数据库、别名、服务器和基于角色的访问控制的命令。要了解更多信息,请参见: