1.1创建空节点
CREATE (n)
CREATE (a),(b)
1.2创建带标签的节点
CREATE (n:Person)
CREATE (n:Person:Swedish) ---(此为节点同时创建两个标签)
CREATE (n:西游:金箍棒{name:'如意金箍棒',title:'神兵'}) ---(举例)
---(注释:Person节点标签,Swedish节点标签 )
1.3创建带标签和属性的节点
CREATE (n:Person { name: 'Andres', title: 'Developer' })
CREATE (n:西游 { name: '小龙女', title: '龙女' })
CREATE (a:西游 { name: '嫦娥', title: '仙人' })return a
(n/a:表示此标签,可自行定义,与return连用才发挥实际作用)
(name:标签名字 title:标签标题 ---两者可以选择显示(同上图))
1.5在两个节点之间创建关系,并设置关系类型
MATCH (a:标签1),(b:标签2)
WHERE a.name = '节点1' AND b.name = '节点2'
CREATE (a)-[r:RELTYPE]->(b)
RETURN type(r)
1.6创建关系,并设置关系的属性
MATCH (a:Person),(b:Person)
WHERE a.name = 'A' AND b.name = 'B'
CREATE (a)-[r:自定义关系名{ name: a.name + '<->' + b.name }]->(b)
RETURN type(r), r.name
2.1删除xiyouRelation节点标签 、删除金箍棒标签
match(n:xiyouRelation) delete n
match (n:`金箍棒`)delete n (注释:删除名字叫金箍棒的标签,前提是标签中的所有节点不再与别的标签的节点存在关联关系)
2.2删除Customer 节点标签
match(n:Customer) delete n
2.3 删除Goods 节点标签
match(n:Goods) delete n
2.4 删除Movie 节点标签
match(n:Movie) delete n
2.5 删除BC_Person节点,以及与之相关的所有关系
MATCH (n:BC_Person)-[r]-() DELETE n,r
(使用delete子句删除节点、关系和路径,当删除节点时,该节点必须是孤立的节点,也就是说,必须首先删除跟节点相关的所有关系。
detach delete: 表示删除一个节点或多个节点,跟节点相关的所有关系也都被删除)
2.6 删除节点
MATCH (n:Person { name: 'UNKNOWN' })DELETE n
match(n:`金箍棒`{name:'如意金箍棒'})delete n
(注释:删除金箍棒标签中名叫如意金箍棒的节点)
2.7 删除所有节点和关系
MATCH (n { name: 'Andres' })DETACH DELETE n
2.8 删除一个节点和它的所有关系
MATCH (n { name: 'Andres' })DETACH DELETE n
2.9 删除关系
MATCH (n { name: 'Andres' })-[r:KNOWS]->()DELETE r
3.1 查询BC_Person节点标签包含的节点和节点间的关系
MATCH (n:BC_Person)-[r]-() RETURN n,r
1.创建带属性的人物节点
create(xyj_tsz:`西游`{name:"唐三藏",age:39});
create(xyj_swk:`西游`{name:"孙悟空",age:520});
create(xyj_zbj:`西游`{name:"猪八戒",age:512});
create(xyj_swj:`西游`{name:"沙悟净",age:444});
create(n:西游{name:'孙悟空',title:'齐天大圣'})
create(xyj_swj:`西游`{name:"沙悟净",title:'卷帘大将'});
CREATE(n:西游 { name: '小龙女', title: '龙女' })
CREATE(a:西游 { name: '嫦娥', title: '仙人' })return a
(注解:创建一个西游标签中,名字叫嫦娥的节点,添加标题为仙人,返回a可直接查看)
2.创建带属性的西游武器
CREATE(n:西游:西游武器{name:'九齿钉耙',title:'猪八戒'})
create(n:西游:西游武器{name:'禅杖',age:5000})
create(n:西游:西游武器{name:'东皇钟',title:'先天至宝',age:1000000})
CREATE (n:`西游武器`{name:'金箍棒',title:"定海神针",age:10000})
CREATE (n:`西游武器`{name:'混天绫',title:'乾坤圈',age:50000})
3.创建人物与武器的关系
match (a:`西游`),(b:`西游武器`)
where a.name='孙悟空' and b.name='金箍棒'
create (a)-[r:驾驭]->(b)
return type(r),r.name
(注释:调出西游标签中name为孙悟空的节点和西游武器标签中name为金箍棒的节点,创建名为驾驭的关系连线,最后return出关系视图与关系名)
1,创建空的节点
CREATE (n)
CREATE (a),(b)
2,创建带标签的节点
CREATE (n:Person)
CREATE (n:Person:Swedish)
3,创建带标签和属性的节点
CREATE (n:Person { name: 'Andres', title: 'Developer' })
4.在两个节点之间创建关系
在两个节点之间创建关系,并设置关系类型
MATCH (a:Person),(b:Person)
WHERE a.name = 'A' AND b.name = 'B'
CREATE (a)-[r:RELTYPE]->(b)
RETURN type(r)
4.创建关系,并设置关系的属性
MATCH (a:Person),(b:Person)
WHERE a.name = 'A' AND b.name = 'B'
CREATE (a)-[r:RELTYPE { name: a.name + '<->' + b.name }]->(b)
RETURN type(r), r.name
(使用delete子句删除节点、关系和路径,当删除节点时,该节点必须是孤立的节点,也就是说,必须首先删除跟节点相关的所有关系。
detach delete: 表示删除一个节点或多个节点,跟节点相关的所有关系也都被删除。)
5,删除节点
MATCH (n:Person { name: 'UNKNOWN' })
DELETE n
6,删除所有节点和关系
MATCH (n)
DETACH DELETE n
7,删除一个节点和它的所有关系
MATCH (n { name: 'Andres' })
DETACH DELETE n
8,删除关系
MATCH (n { name: 'Andres' })-[r:KNOWS]->()
DELETE r
更新属性或标签
1,向节点或关系中添加属性
MATCH (n { name: 'Andres' })
SET n.surname = 'Taylor'
RETURN n.name, n.surname
2,移除属性
如果设置属性的值是NULL,相当于把该属性从节点或关系中移除
MATCH (n { name: 'Andres' })
SET n.name = NULL RETURN n.name, n.age
3,复制属性
把一个节点的属性复制给另一个节点
MATCH (at { name: 'Andres' }),(pn { name: 'Peter' })
SET at = pn
RETURN at.name, at.age, at.hungry, pn.name, pn.age
4,从Map中添加属性
MATCH (p { name: 'Peter' })
SET p += { hungry: TRUE , position: 'Entrepreneur' }
5,在一条set子句中添加多个属性
MATCH (n { name: 'Andres' })
SET n.position = 'Developer', n.surname = 'Taylor'
6,向节点中添加标签
MATCH (n { name: 'Stefan' })
SET n:German
RETURN n.name, labels(n) AS labels
7,向节点中添加多个标签
MATCH (n { name: 'Emil' })
SET n:Swedish:Bossman
RETURN n.name, labels(n) AS labels
使用remove子句从节点中移除标签和属性,从关系中移除属性。
1,移除属性
默认情况下,Neo4j不允许存在值为null的属性;如果属性不存在,那么返回该属性的值是null。
MATCH (a { name: 'Andres' })
REMOVE a.age
RETURN a.name, a.age
2,移除节点的标签
MATCH (n { name: 'Peter' })
REMOVE n:German
RETURN n.name, labels(n)
3,移除节点的多个标签
当节点的标签为空时,labels(n)函数返回空的list
MATCH (n { name: 'Peter' })
REMOVE n:German:Swedish
RETURN n.name, labels(n)