Cypher官方编程指南
时间: 2023-10-16 11:13:02 浏览: 261
neo4j-cypher-manual-4.1.pdf
Cypher是一种用于Neo4j图数据库的声明性查询语言。本指南将介绍基本的Cypher语法和查询模式,以及如何使用Cypher创建、更新和删除节点和关系。
1. Cypher基础知识
1.1 Cypher语法
Cypher语句由多行组成,每行以分号结尾。例如:
```
MATCH (n:Person)-[:FRIENDS_WITH]->(m:Person)
WHERE n.name = 'Alice' AND m.age > 30
RETURN n, m;
```
这个查询会查找名为"Alice"的人和年龄大于30岁的她的朋友。
1.2 节点和关系
在Cypher中,节点用圆括号表示,例如`(n:Person)`表示一个类型为"Person"的节点。节点也可以定义属性,例如`(n:Person {name: 'Alice', age: 25})`表示一个名为"Alice",年龄为25岁的人。
关系用方括号表示,例如`(n)-[:FRIENDS_WITH]->(m)`表示节点n和m之间有一个"FRIENDS_WITH"类型的关系。
1.3 查询模式
Cypher查询模式的基本语法是`(node1)-[relationship]->(node2)`,其中node1和node2是节点的变量名,relationship是关系类型的名称。
例如,下面的查询模式将查找所有名为"Alice"的人,并返回他们的朋友:
```
MATCH (n:Person {name: 'Alice'})-[:FRIENDS_WITH]->(m:Person)
RETURN m;
```
2. 创建、更新和删除节点和关系
2.1 创建节点
要创建一个新节点,可以使用`CREATE`语句,例如:
```
CREATE (n:Person {name: 'Bob', age: 30})
```
这将创建一个名为"Bob",年龄为30岁的新人节点。
2.2 更新节点
要更新现有节点的属性,可以使用`SET`语句,例如:
```
MATCH (n:Person {name: 'Bob'})
SET n.age = 40
```
这将把名为"Bob"的人节点的年龄从30岁更新为40岁。
2.3 删除节点
要删除节点,可以使用`DELETE`语句,例如:
```
MATCH (n:Person {name: 'Bob'})
DELETE n
```
这将删除名为"Bob"的人节点。
2.4 创建关系
要创建两个节点之间的新关系,可以使用`CREATE`语句,例如:
```
MATCH (n:Person {name: 'Alice'}), (m:Person {name: 'Bob'})
CREATE (n)-[:FRIENDS_WITH]->(m)
```
这会创建一个名为"Alice"的人节点和一个名为"Bob"的人节点之间的新"FRIENDS_WITH"关系。
2.5 更新关系
要更新现有关系的属性,可以使用`SET`语句,例如:
```
MATCH (n:Person {name: 'Alice'})-[r:FRIENDS_WITH]->(m:Person {name: 'Bob'})
SET r.since = '2021-01-01'
```
这将更新名为"Alice"和名为"Bob"之间的"FRIENDS_WITH"关系的"since"属性为"2021-01-01"。
2.6 删除关系
要删除关系,可以使用`DELETE`语句,例如:
```
MATCH (n:Person {name: 'Alice'})-[r:FRIENDS_WITH]->(m:Person {name: 'Bob'})
DELETE r
```
这将删除名为"Alice"和名为"Bob"之间的"FRIENDS_WITH"关系。
3. 结论
Cypher是一种灵活且易于使用的查询语言,可用于创建、更新和删除节点和关系。通过熟练掌握Cypher语法和查询模式,您可以更有效地使用Neo4j图数据库来管理和分析您的数据。
阅读全文