子句
本节包含Cypher®查询语言中所有子句的信息。
Reading clauses 读取子句
这些子句用于从数据库中读取数据。
Cypher查询中的数据流是一组无序的带有键值对的映射 — 这是查询中的变量与数据库中得出的值之间可能的绑定集合。该集合会在查询的后续部分中被进一步细化和扩展。
子句 | 描述 |
---|---|
MATCH | 指定在数据库中搜索的模式。 |
OPTIONAL MATCH | 指定在数据库中搜索的模式,同时对模式中缺失的部分使用null。 |
Projecting clauses 投影子句
这些子句用于定义结果集中返回哪些表达式。所有返回的表达式都可以使用AS进行别名设置。
子句 | 描述 |
---|---|
RETURN … [AS] | 定义查询结果集中包含什么。 |
WITH … [AS] | 允许将查询部分链接在一起,将一个查询的结果传递到下一个查询中作为起始点或条件。 |
UNWIND … [AS] | 将列表展开为一系列行。 |
Reading sub-clauses 读取子子句
这些子子句必须作为读取子句的一部分运行。
子子句 | 描述 | |
---|---|---|
WHERE | 在MATCH或OPTIONAL MATCH子句中添加对模式的约束,或者过滤WITH子句的结果。 | |
ORDER BY [ASC[ENDING] | DESC[ENDING]] | 在RETURN或WITH后的子子句,指定输出按升序(默认)或降序排序。 |
SKIP | 定义从哪一行开始包括输出中的行。 | |
LIMIT | 限制输出中的行数。 |
Writing clauses 写入子句
这些子句用于将数据写入数据库。
子句 | 描述 |
---|---|
CREATE | 创建节点和关系。 |
DELETE | 删除节点、关系或路径。要删除的任何节点也必须明确删除所有关联的关系。 |
DETACH DELETE | 删除一个或一组节点。所有关联的关系将自动被删除。 |
SET | 更新节点上的标签和节点、关系上的属性。 |
REMOVE | 从节点和关系中删除属性和标签。 |
FOREACH | 更新列表中的数据,无论是路径的组件还是聚合结果。 |
Reading/Writing clauses 读取/写入子句
这些子句既从数据库中读取数据又向数据库中写入数据。
子句 | 描述 |
---|---|
MERGE | 确保图中存在某个模式。该模式要么已经存在,要么需要被创建。 |
— ON CREATE | 与MERGE一起使用,用于指定如果需要创建模式时要采取的操作。 |
— ON MATCH | 与MERGE一起使用,用于指定如果模式已经存在时要采取的操作。 |
CALL … [YIELD … ] | 调用在数据库中部署的存储过程并返回任何结果。 |
Subquery clauses 子查询子句
子句 | 描述 |
---|---|
CALL { … } | 计算子查询,通常用于联合后处理或聚合。 |
CALL { … } IN TRANSACTIONS | 在单独的事务中计算子查询。通常用于修改或导入大量数据时。 |
Set operations 集合操作
子句 | 描述 |
---|---|
UNION | 将多个查询的结果组合成一个结果集。重复的行会被移除。 |
UNION ALL | 将多个查询的结果组合成一个结果集。重复的行会被保留。 |
Multiple graphs 多图
子句 | 描述 |
---|---|
USE | 确定查询或查询部分在哪个图上执行。 |
Importing data 导入数据
子句 | 描述 |
---|---|
LOAD CSV | 从CSV文件导入数据时使用。 |
CALL { … } IN TRANSACTIONS | 在导入大量数据时,可以使用此子句来避免内存溢出错误的发生。 |
Listing functions and procedures 函数和存储过程列表
子句 | 描述 |
---|---|
SHOW FUNCTIONS | 列出可用函数。 |
SHOW PROCEDURES | 列出可用存储过程。 |
Configuration Commands 配置命令
子句 | 描述 |
---|---|
SHOW SETTINGS | 列出配置设置。 |
Transaction Commands 事务命令
子句 | 描述 |
---|---|
SHOW TRANSACTIONS | 列出可用事务。 |
TERMINATE TRANSACTIONS | 通过其ID终止事务。 |
Reading hints 读取提示
这些子句用于在调整查询时指定规划提示。有关使用这些提示以及查询调优的更多详细信息,可参阅“规划提示”和“USING关键字”。
提示 | 描述 |
---|---|
USING INDEX | 索引提示用于指定规划器应该使用哪个索引(如果有)作为起始点。 |
USING INDEX SEEK | 索引搜索提示指示规划器在此子句中使用索引搜索。 |
USING SCAN | 扫描提示用于强制规划器执行标签扫描(后跟过滤操作),而不使用索引。 |
USING JOIN | 连接提示用于在指定的点上强制执行连接操作。 |
Index and constraint clauses 索引和约束子句
这些子句用于创建、显示和删除索引和约束。
子句 | 描述 | ||
---|---|---|---|
CREATE | SHOW | DROP INDEX | 创建、显示或删除索引。 |
CREATE | SHOW | DROP CONSTRAINT | 创建、显示或删除约束。 |
Administration clauses 管理子句
Cypher包括用于管理数据库、别名、服务器和基于角色的访问控制的命令。要了解有关每个子句的更多信息,请参见:
Operations Manual → Database administration(操作手册 → 数据库管理)
Operations Manual → Authentication and authorization(操作手册 → 身份验证和授权)
Operations Manual → Clustering(操作手册 → 集群化)
参考资料
chat
https://neo4j.com/docs/cypher-manual/5/clauses/
- 子句
- Reading clauses 读取子句
- Projecting clauses 投影子句
- Reading sub-clauses 读取子子句
- Writing clauses 写入子句
- Reading/Writing clauses 读取/写入子句
- Subquery clauses 子查询子句
- Set operations 集合操作
- Multiple graphs 多图
- Importing data 导入数据
- Listing functions and procedures 函数和存储过程列表
- Configuration Commands 配置命令
- Transaction Commands 事务命令
- Reading hints 读取提示
- Index and constraint clauses 索引和约束子句
- Administration clauses 管理子句
- 参考资料