neo4j基本命令学习
添加节点操作
例子:
create (n:华山{name:"令狐冲", skill:"易筋经", master:"岳不群"})
create为创建语句,n是一个对象用什么都可以,节点信息(采用字典的格式)
创建效果:
添加关系
我们再创建一个名为岳不群的节点
create (n:华山{name:"岳不群"})
为两个节点创建师徒关系
match (a:华山), (b:华山) where a.name = "岳不群" and b.name = "令狐冲" create (a)-[r:师徒]->(b);
效果:
添加修改属性
使用set语句 如果属性不存在就添加,存在就修改
match (e:华山{name:"令狐冲"}) set e.position = "aaaa";
给令狐冲添加一个属性'position'值为'aaa'
如果属性'position'已经存在就是修改操作辣
跨标签建立关系
先创建一个另外一个标签的人
create (n:另外一个标签{name:"人物1", skill:"技能1", master:"师傅1"})
通过给出不同的对象名来确定不同标签下的节点 类似sql的别名
match (n:`华山`{name:"令狐冲"}), (m:`另外一个标签`{name:"人物1"}) create (n) - [r:普通朋友] -> (m);
可以在左侧查看创建的关系
单节点查询
match (e:华山) where e.name = "令狐冲" return e
结果:
整个label查询
说白了就是 select * from xxx
所有的节点包括该标签内部的关系都会被返回
match (e:`华山`) return e
结果:
整体关系查询
create(n:`华山`{name:"杰哥"})
match (a:华山), (b:华山) where a.name = "杰哥" and b.name = "令狐冲" create (a)-[r:师徒]->(b);
通过之前的命令为狐冲哥在加一个师傅
现在通过命令查询在华山所有有师徒关系的节点
match R = (p1:华山) - [r:师徒] ->(p2) return R;
p1,p2依旧是对象,同时用一个R来接收这些信息。
结果:
单个关系查询
match R = (p1:华山) - [r:师徒] ->(p2) where p1.name="岳不群" and p2.name="令狐冲" return R;
关系删除
MATCH (n:`华山`{name:"杰哥"}) - [r:`师徒`] -> (m:`华山`{name:"令狐冲"}) delete r;
如果要吧对应实体删除就是 delete r,m,n (注意关系要先删除)
属性标签删除
通过remove实现
废了令狐冲的武功!
MATCH (n:`华山`{name:"令狐冲"}) remove n.skill
结果: