Neo4j-Cypher-02-Clauses 子句
2018年1月8日大约 4 分钟
子句
本节包含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]] |
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 |
CREATE | SHOW |
Administration clauses 管理子句
Cypher包括用于管理数据库、别名、服务器和基于角色的访问控制的命令。要了解有关每个子句的更多信息,请参见:
Operations Manual → Database administration(操作手册 → 数据库管理)
Operations Manual → Authentication and authorization(操作手册 → 身份验证和授权)
Operations Manual → Clustering(操作手册 → 集群化)
参考资料
chat
贡献者
binbin.hou