Neo4j Cypher
1. 数据查询与匹配类
语句 | 作用 |
---|---|
MATCH | 匹配已有的节点/关系 |
OPTIONAL MATCH | 类似 SQL 的 LEFT JOIN,匹配不到时返回 null |
WHERE | 条件过滤,可以配合 MATCH 、WITH 、OPTIONAL MATCH |
RETURN | 返回结果 |
UNION / UNION ALL | 合并多个结果集(去重/不去重) |
ORDER BY | 排序 |
SKIP / LIMIT | 分页控制 |
2. 数据创建与修改类
语句 | 作用 |
---|---|
CREATE | 创建节点或关系 |
MERGE | 匹配或创建(upsert 功能) |
SET | 设置或更新属性、标签 |
REMOVE | 删除属性或标签 |
DELETE | 删除节点或关系(节点需先删除关系) |
DETACH DELETE | 删除节点及其所有关系 |
FOREACH | 循环更新(只能在 WITH 后用) |
3. 聚合与计算类
语句 | 作用 |
---|---|
WITH | 管道传递结果,类似 SQL 的子查询中间结果 |
DISTINCT | 去重(配合 RETURN / WITH ) |
COUNT , SUM , AVG , MIN , MAX | 聚合函数 |
COLLECT | 把多行合并成列表 |
4. 模式控制与路径类
语句 | 作用 |
---|---|
SHORTESTPATH() / ALLSHORTESTPATHS() | 最短路径查询 |
[:REL*min..max] | 变量长度路径 |
ANY , ALL , NONE , SINGLE | 路径或列表的条件判断 |
5. 子查询与过程调用
语句 | 作用 |
---|---|
CALL { ... } | 内联子查询(Neo4j 4.0+) |
CALL procedureName(...) | 调用存储过程(如 APOC、内置过程) |
YIELD | 获取过程返回的列 |
CALL db.indexes / CALL db.constraints | 系统管理命令 |
CALL db.schema.visualization() | 图数据库结构可视化 |
6. 数据导入导出类
语句 | 作用 |
---|---|
LOAD CSV | 从 CSV 文件导入数据 |
USING PERIODIC COMMIT | 分批提交(导入大文件时优化内存) |
CALL apoc.export.csv.all(...) | APOC 导出数据 |
CALL apoc.import.csv(...) | APOC 导入数据 |
7. 索引与约束类
语句 | 作用 |
---|---|
CREATE INDEX | 创建索引(属性索引、全文索引等) |
DROP INDEX | 删除索引 |
CREATE CONSTRAINT | 创建约束(唯一性、存在性、节点键) |
DROP CONSTRAINT | 删除约束 |
8. 调试与性能分析
语句 | 作用 |
---|---|
PROFILE | 显示执行计划和实际执行数据 |
EXPLAIN | 只显示执行计划,不执行查询 |
USING INDEX | 强制使用某个索引 |
USING SCAN | 强制全表扫描(极少用) |