命名规范
- 节点变量名—小写,属性名—小写
- 节点标签名—-首字母大写
- 关系—大写
- 是支持中文命名的
创建节点:标签
CREATE(节点名称:节点标签{属性名:属性值,属性名:属性值...})
create(:Student:Player{id:1,name:'罗书全'});
节点名称在创建时是可以省略的如:
create(:Student:Player{id:1,name:'罗书全'})
用已经存在的节点创建关系
MATCH (A节点:标签),(B节点:标签) CREATE (A节点) - [关系名称 : 关系标签{属性名:属性值,属性名:属性值...}]-> (B节点)
match (s:Student),(t:Teacher) create (t)-[r:TEACH{startTime:'2018-06-01'} ]->(s)
同理这里的关系名称也是可以省略的。这里的A节点和B节点 都是代指 你写什么都是无所谓的只是一个代指变量名 我理解是和方程式中的X,Y一样。
使用新节点创建关系
create (t:Teacher{name:'罗书全'})-[r:TEACH{startTime:'2018-06-01'} ]->(s:Student{name:'张三'})
删除节点/关系
match(t:Teacher) delete t
match(s:Student)-[r]-(t:Teacher) delete r,s,t
delete节点时,如果节点之间还有关系会报错,这时可以使用下面的语句,直接将节点和关系一起删除
match(t:Teacher) detach delete t
查询的基本语法
通过节点查询
--查所有的节点 这里的n也是代指同上。
MATCH (n) WHERE n.name ='罗书全' RETURN n;
通过关系查询
无指向关系
match(n)--(m:Teacher) return n;
有指向关系
MATCH (:Person { name: '罗书全' })-->(m)
RETURN m;