【知识图谱系列】Neo4j数据库操作全攻略:增删改查与快速清空技巧

本文将全面介绍Neo4j图数据库的基本操作,包括如何增加节点和关系、如何删除节点和关系、如何修改节点和关系的属性以及标签,以及如何进行查找操作。此外,还将分享一个实用的小技巧——如何快速清空Neo4j数据库中的所有数据。

目录

一、Neo4j的增操作

(一)增加一个节点

(二)增加关系属性

情形一:同时创建节点和关系

情形二: 在原有的节点基础上创建关系

二、Neo4j的删除操作

(一)删除节点

(二) 删除关系

(三) 同时删除关系和节点

三、Neo4j的改操作

(一)增加标签

(二)增加属性

(三)修改属性 

四、Neo4j的查找操作(这里举一个例子)

补充:快速清空所有数据库

 


一、Neo4j的增操作

(一)增加一个节点

create (n:Person {name:'我',age:31})
  • CREATE:这是Cypher查询中的关键字,用于指示数据库创建新的节点或关系。

  • (n):这是一个占位符,代表将要创建的节点。n 是一个变量名,你可以使用任何合法的变量名来代替它。

  • Person:这部分定义了节点的标签(Label)。在这里,Person 是一个标签,表示这个节点属于“人”这一类别。在Neo4j中,标签可以用来表示实体或概念的类型。

  • {name:'我', age:31}:这是一个属性(Property)映射,用来给节点设置属性。在这个例子中,节点 n 有两个属性:name 和 agename 属性被赋予了字符串值 '我',而 age 属性被赋予了整数值 31

综合起来,这条Cypher语句的作用是创建一个新的节点,这个节点具有 Person 标签,并且有两个属性:name 属性的值为 '我'age 属性的值为 31。这个节点在数据库中是独一无二的,除非已经存在一个具有相同标签和属性值的节点。

 

 再创建一个标签为Person,属性为“你”和“30”的节点

create (n:Person {name:'你',age:30})

(二)增加关系属性

情形一:同时创建节点和关系

create(p:Person{name:"我",age:"31"})-[:包工程{金额:10000}]->(n:Person{name:"好大哥",age:"35"})
  • create 是一个关键字,用于在数据库中创建新的节点和关系。
  • (p:Person{name:"我",age:"31"}) 创建一个新的节点 p,这个节点属于 Person 标签,并具有两个属性:name 属性的值为 "我"age 属性的值为 "31"
  • -[:包工程{金额:10000}] 创建一个新的关系,这个关系连接两个节点,关系的类型是 包工程,并且这个关系有一个属性 金额,其值为 10000
  • -> (n:Person{name:"好大哥",age:"35"}) 指明了关系的另一个节点 n,这个节点同样属于 Person 标签,并具有 name 和 age 两个属性,分别设置为 "好大哥" 和 "35"

所以,整体来看,这段代码的作用是创建两个 Person 类型的节点,一个名为 "我",年龄为 31,另一个名为 "好大哥",年龄为 35,并在两者之间创建了一个类型为 包工程 的关系,该关系有一个属性 金额,其值为 10000

情形二: 在原有的节点基础上创建关系

// 查找这两个节点
MATCH (n1:Person), (n2:Person)
WHERE id(n1) = 1 AND id(n2) = 4
// 创建关系,例如:n1是n2的父节点
CREATE (n1)-[:借款{金额:1000}]->(n2)

 

二、Neo4j的删除操作

(一)删除节点

创建一个TYD的节点,然后将其删除

create (n:Person {name:'TYD',age:31})

match (n:Person{name:"TYD"}) delete n

 如下:发现就没有TYD这个节点了。

注意:在删除节点的时候,如果有关系存在,就要先删除关系,才能成功删除节点。 如下:

在这个问题中,想要删除标号为“2”的节点,但系统提示无法删除该节点,因为它仍然具有关系。

在图数据库或图模型中,节点和关系是一种基本的结构。关系用于连接节点,表示它们之间的连接。在删除一个节点之前,您必须先删除它的所有关系,否则系统将无法删除该节点。

(二) 删除关系

在删除关系之前要先找到这个关系

match (p:Person{name:"我",age:"31"})-[f:包工程]->(n:Person{name:"好大哥",age:"35"}) delete f

 首先,match 关键字用于查找满足条件的节点和关系。在这个语句中,我们查找一个名字为“我”,年龄为“31”的 Person 节点(p),以及它和一个名字为“好大哥”,年龄为“35”的 Person 节点(n)之间的 包工程 关系(f)。

接下来,delete 关键字用于删除查找到的关系。在这个语句中,我们删除了 f 关系。

因此,这个语句的作用是:查找名字为“我”,年龄为“31”的 Person 节点和名字为“好大哥”,年龄为“35”的 Person 节点之间的 包工程 关系,并将它们删除。

需要注意的是,这个语句只删除了关系,没有删除节点。

f 是用来引用在 match 查询中找到的特定 包工程 关系的别名。

f 是一个别名(alias),用于代表查询结果中的一个具体的 包工程 关系(relationship)。

结果如下:节点“我”和节点“好大哥”之间的关系已经被删除了。

(三) 同时删除关系和节点

match (p:Person{name:"我",age:"31"})-[f:包工程]->(n:Person{name:"好大哥",age:"35"}) delete f,p,n

三、Neo4j的改操作

改操作可以改节点现有的属性或者标签,也可以增加节点新的属性或者标签。 

(一)增加标签

本小节目的:给“好大哥”这个节点增加一个标签

"好大哥"这个节点的id是2

match (t:Person) where id(t)=2 set t:好人

结果如下: 

(二)增加属性

a是一个别名,写成任何值,如p或者n都无所谓

match (a:好人) where id(a)=2 set a.战斗力=200 return a

(三)修改属性 

将战斗力更改成500

match (a:好人) where id(a)=2 set a.战斗力=500 return a

四、Neo4j的查找操作(这里举一个例子)

match (p:Person) - [:借款] -> (n:Person) return p,n

  1. MATCH (p:Person) - [:借款] -> (n:Person):

    • MATCH 是用来在图形数据库中查找模式的。这里,它寻找所有符合 Person 类型的节点(p 和 n)。
    • -[:借款]-> 是关系路径,表示从一个 Person 节点(p)通过一个名为 借款 的关系到达另一个 Person 节点(n)。-> 指向关系的方向。
  2. return p, n:

    return 语句用于返回查询结果。在这个查询中,它会返回两个节点,p 和 n,作为查询结果的每一行。每行将包含匹配到的 Person 对的组合。

所以,这个查询的目的是找出所有 Person 类型的节点,其中有一个关系是 借款,并且这个关系连接了两个 Person 节点,并返回这两个节点。

结果将是一个包含借款关系的 Person 对列表。

 

补充:快速清空所有数据库

MATCH (n) DETACH DELETE n

 

  • 22
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值