Neo4j(二) Neo4j中的CRUD操作(小猪佩奇关系网)
本章介绍Neo4j中的基本操作
以小猪佩奇的关系网为案例
素材来自B站视频学习
前言
上图为小猪佩奇一家人,为了更加丰富,案例添加了人物如下
- 猪爷爷 猪奶奶
- 猪爸爸 猪妈妈
- 佩奇 乔治
- 猪爸爸 猪妈妈
- 猪外公 猪外婆
下文只包括了简单的入门语句,
更多复杂的语句可以去中文文档查看
增加(创建)
创建猪爷爷与猪奶奶节点
create (:pig{name:'猪爷爷',age:15})
create (:pig{name:'猪奶奶',age:13})
其中 pig
代表标签 后面的数据格式类似于json
创建完成后点击 pig
标签会显示出两个节点
下面就要为猪爷爷和猪奶奶添加关系
match (a:pig{name:'猪爷爷'}) match (b:pig{name:'猪奶奶'}) create (a)-[p:夫妻]->(b) return p;
逻辑是
- 找到猪爷爷节点 记为
a
- 找到猪奶奶节点 记为
b
- 为
a
和b
创建关系p
夫妻
不过这样创建有些麻烦,也可以在创建节点的时候一并创建关系
注: 关系也可以带属性
create(:pig{name:'猪爸爸',age:10})-[:夫妻{age:5}]->(:pig{name:"猪妈妈",age:9});
这里的[:夫妻{age:5}]
age
是关系夫妻
的属性,可以表示婚龄
佩奇和乔治的关系同理
create(:pig{name:'佩奇',age:2})-[:姐弟]->(:pig{name:"乔治",age:3});
创建父子关系
这里要注意创建语句中的箭头指向也表示了图数据库中的箭头指向
match (a:pig{name:'猪爷爷'}) match (b:pig{name:'猪爸爸'}) create (a)-[p:父子]->(b) return p;
match (a:pig{name:'猪爸爸'}) match (b:pig{name:'乔治'}) create (a)-[p:父子]->(b) return p;
match (a:pig{name:'猪爸爸'}) match (b:pig{name:'佩奇'}) create (a)-[p:父女]->(b) return p;
match (a:pig{name:'猪爷爷'}) match (b:pig{name:'佩奇'}) create (a)-[p:孙女]->(b) return p;
match (a:pig{name:'猪奶奶'}) match (b:pig{name:'佩奇'}) create (a)-[p:孙女]->(b) return p;
简单的写了几句之后,关系网就构建出来了,如下图所示
修改
如修改猪妈妈的年龄为8岁
match(a:pig{name:'猪妈妈'}) set a.age=8;
非常简单
查询出来然后 set
一下就好了
删除
这里不能直接删除有关系的节点
match(a:pig{name:'猪妈妈'}) delete a;
必须先删除关系
match (a:pig{name:'猪妈妈'})-[p]-(b:pig{name:'猪爸爸'}) delete p;
再删除猪妈妈即可
match(a:pig{name:'猪妈妈'}) delete a;
删除一个仅包含节点的标签
match(a:test) delete a