一、MATCH 查询
cypher
MATCH (n:`西游`) RETURN n LIMIT 25
-
用于从数据库获取节点、关系和属性的数据
-
支持条件过滤、排序、分页等
二、RETURN 返回
cypher
MATCH (n:`西游`) RETURN id(n), n.name, n.tail, n.relation
-
可返回节点的某些属性或所有属性
-
可返回节点和关联关系的某些属性或所有属性
三、WHERE 子句
cypher
MATCH (n:person)
WHERE n.name = '孙悟空' OR n.name = '猪八戒'
RETURN n
-
用于过滤 MATCH 查询结果
-
支持逻辑运算、比较运算、IN 操作等
四、CREATE 关系
cypher
MATCH (n:person), (m:person)
WHERE n.name = '孙悟空' AND m.name = '猪八戒'
CREATE (n)-[r:师弟]->(m)
RETURN n.name, type(r), m.name
五、DELETE 删除
删除节点(无关系时)
cypher
MATCH (n:person {name:"白龙马"})
DELETE n
删除关系
cypher
MATCH (n:person {name:"沙僧"})<-[r]-(m)
DELETE r
RETURN type(r)
六、REMOVE 删除属性/标签
删除属性
cypher
MATCH (n:role {name:"fox"})
REMOVE n.age
RETURN n
删除标签
cypher
MATCH (m:role:person {name:"fox666"})
REMOVE m:person
RETURN m
七、SET 添加/更新属性
cypher
MATCH (n:role {name:"fox"})
SET n.age = 32
RETURN n
八、ORDER BY 排序
cypher
MATCH (n:`西游`)
RETURN id(n), n.name
ORDER BY id(n) DESC
- 默认升序(ASC),可指定 DESC
九、UNION / UNION ALL
cypher
MATCH (n:role) RETURN n.name AS name
UNION
MATCH (m:person) RETURN m.name AS name
-
UNION:去重合并 -
UNION ALL:合并所有行(含重复)
要求:结果列名和类型必须匹配
十、LIMIT / SKIP
cypher
MATCH (n:`西游`) RETURN n LIMIT 2 -- 前两行
MATCH (n:person) RETURN n SKIP 2 -- 忽略前两行
十一、NULL 值处理
cypher
MATCH (n:`西游`)
WHERE n.label IS NULL
RETURN id(n), n.name, n.tail, n.label
十二、IN 操作符
cypher
MATCH (n:`西游`)
WHERE n.name IN ['孙悟空', '唐僧']
RETURN id(n), n.name, n.tail, n.label
十三、索引(INDEX)
创建索引
cypher
CREATE INDEX ON :`西游` (name)
删除索引
cypher
DROP INDEX ON :`西游` (name)
十四、UNIQUE 约束
创建唯一约束
cypher
CREATE CONSTRAINT ON (n:xiyou) ASSERT n.name IS UNIQUE
删除唯一约束
cypher
DROP CONSTRAINT ON (n:xiyou) ASSERT n.name IS UNIQUE
十五、DISTINCT
cypher
MATCH (n:`西游`)
RETURN DISTINCT(n.name)
十六、常用函数
字符串函数
| 函数 | 说明 |
|---|---|
UPPER |
转大写 |
LOWER |
转小写 |
SUBSTRING |
取子串 |
REPLACE |
替换子串 |
聚合函数
| 函数 | 说明 |
|---|---|
COUNT |
行数 |
MAX |
最大值 |
MIN |
最小值 |
SUM |
求和 |
AVG |
平均值 |
关系函数
| 函数 | 说明 |
|---|---|
STARTNODE |
关系的开始节点 |
ENDNODE |
关系的结束节点 |
ID |
关系的 ID |
TYPE |
关系的类型(字符串) |
十七、数据库备份与恢复(neo4j-admin)
操作前需关闭 Neo4j 服务
备份
neo4j stop
neo4j-admin dump --database=graph.db --to=/neo4j/backup/graph_backup.dump
恢复
neo4j-admin load --from=/neo4j/backup/graph_backup.dump --database=graph.db --force
neo4j start