Cypher 命令
清除所有节点及管理 DETACH DELETE 会自动删除节点及其所有的关系,无需单独删除关系。 --- Cypher 语法 默认访问路径:http://localhost:7474 记法:开头匹配M…
清除所有节点及管理
1MATCH (n)
2DETACH DELETE n;
DETACH DELETE 会自动删除节点及其所有的关系,无需单独删除关系。
1// 删除所有关系
2MATCH ()-[r]-()
3DELETE r;
4// 删除所有节点
5MATCH (n)
6DELETE n;
Cypher 语法
默认访问路径:http://localhost:7474
记法:开头匹配MATCH,创建CREATE,更新SET,删除(节点&关系)DELETE,移除(属性&标签)REMOVE,过滤WHERE,结尾返回RETURN,限制最后LIMIT
1// 服务状态
2:server status
3// 使用数据库
4:use neo4j
5// 清除屏幕
6:clear
7// 展示数据库
8SHOW DATABASES;
9// 创建数据库(社区版不行)
10CREATE DATABASE my_database;
- 创建节点(Create Nodes):
1// 创建一个Person节点标签,name为Alice,age为18的属性,并赋值给n变量
2CREATE (a:Person {name: 'Alice', age: 18})
3
4CREATE (a:Person {name: 'Alice', age: 18}),
5 (b:Person {name: 'Bob', age: 22}),
6 (a)-[:KNOWS]->(b)
- 创建关系(Create Relationships):
1// 匹配Persion节点,一个a的name属性为Alice,一个b的name属性为Bob,创建a认识b,并赋值给r
2MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'})
3CREATE (a)-[r:KNOWS]->(b)
- 查询节点(Match Nodes):
1MATCH (n)
2RETURN n LIMIT 25
3
4MATCH (n:Person {name: 'Bob'})
5RETURN n
6
7MATCH (n:Person)
8RETURN n
9
10MATCH (n:Person)
11RETURN n LIMIT 25
- 查询关系(Match Relationships):
1MATCH (a)-[r:KNOWS]->(b)
2RETURN r
- 条件过滤(Conditional Filtering):
1MATCH (n:Person)
2WHERE n.name = 'Bob'
3RETURN n
- 更新节点或关系(Update Nodes or Relationships):
1MATCH (n:Person {name: 'Alice'})
2SET n.name = 'Tom'
3
4// 添加标签
5MATCH (n {name: 'Alice'})
6SET n:Person
- 删除节点或关系(Delete Nodes or Relationships):
1MATCH (n:Person {name: 'Alice'})
2DELETE n
3
4MATCH (n:Person)-[r:KNOWS]->()
5DELETE r
6
7MATCH (n:Person)-[r:KNOWS]->()
8DELETE n, r
9// 这里的ID(n)是Neo4j自动生成的内部节点ID
10MATCH (n)
11WHERE ID(n) = 1
12DELETE n
- 移除属性&标签
1MATCH (n:Person {name: 'Nancy'})
2REMOVE n.age
3// 会移除 Alice 节点上的 Person 标签,但节点和其他属性仍然存在。
4MATCH (n:Person {name: 'Alice'})
5REMOVE n:Person
- 路径查询(Path Queries):
1// 查询两个节点之间 1 到 3 跳的路径
2MATCH p = (a)-[r:KNOWS*1..3]->(b)
3RETURN p
- 聚合查询(Aggregation Queries):
1// 聚合节点的属性并计数
2MATCH (n:Person)
3RETURN n.name, COUNT(n)
- 使用索引(Using Indexes):
1// 为标签的特定属性创建索引,以加快查询速度
2CREATE INDEX ON :Person(name)