图数据库neo4j的编程语句(详解)

<手写测试1>

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.4 创建关系,创建节点之间的关系

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 

 ---截图说明(Node Labels)此为节点标签

(使用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

<手写测试2-Neo4j 之西游记取经团队人物创建和关系设置 >

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出关系视图与关系名)

<知识点总结3>

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)

猜你喜欢

转载自blog.csdn.net/m0_71202849/article/details/127865811