欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > neo4j基础操作:命令行增删改查

neo4j基础操作:命令行增删改查

2025/5/2 18:27:42 来源:https://blog.csdn.net/red_sky_blue/article/details/147592612  浏览:    关键词:neo4j基础操作:命令行增删改查

目录

一,Neo4j的增

1.1.新增节点

1.2.新增关系

1.2.1创建节点时,创建关系

1.2.2在已有的节点上,创建关系

二,Neo4j的删除

2.1删除节点

 2.1.1无关系的节点删除

2.1.2 有关系的节点删除

三,节点修改

3.1 给节点修改标签

3.2 修改,新增属性

四,查找

4.1 查找节点

4.2 查找关系

一,Neo4j的增

1.1.新增节点

create (n:Persion {name:'刘诗诗',age:32})

解释:

  1. CREATE:这是Cypher查询中的关键字,用于指示数据库创建新的节点或关系
  2. (n):这是一个占位符,代表将要创建的节点。n 是一个变量名,你可以使用任何合法的变量名来代替它。
  3. Person:这部分定义了节点的标签(Label)。在这里,Person 是一个标签,表示这个节点属于Person这一类别。在Neo4j中,标签可以用来表示实体或概念的类型。
  4. {name:'刘诗诗',age:32}:这是一个属性(Property)映射,用来给节点设置属性。在这个例子中,节点 n 有两个属性:name 和 agename 属性被赋予了字符串值 '刘诗诗',而 age 属性被赋予了整数值 32

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

在创建一个Person标签的节点

 查看库数据

删除数据,在重新创建下节点

 查看数据

1.2.新增关系

1.2.1创建节点时,创建关系

同1.1语句,创建节点的时候,新增节点间的关系

create(n:Persion{name:"高飞",age:28})-[:日出场费{金额:50}]->(p:Persion{name:"林青霞",age:54})

 

  1. create: 是一个关键字,用于在数据库中创建新的节点和关系。
  2. (n:Persion{name:"高飞",age:28}):创建一个新的节点 n,这个节点属于 Persion标签,并具有两个属性:name 属性的值为 "高飞",age 属性的值为 "28"。
  3. -[:日出场费{金额:50}]:创建一个新的关系,这个关系连接两个节点,关系的类型是 日出场费,并且这个关系有一个属性 金额,其值为 50。
  4. ->(p:Persion{name:"林青霞",age:54}):指明了关系的另一个节点 p,这个节点同样属于 Persion标签,并具有 name 和 age 两个属性,分别设置为 "林青霞和 "54"。

所以,整体来看,这段代码的作用是创建两个 Persion类型的节点,一个名为 "高飞",年龄为 28,另一个名为 "林青霞",年龄为 54,并在两者之间创建了一个类型为 日出场费 的关系,该关系有一个属性 金额,其值为 50。

1.2.2在已有的节点上,创建关系

MATCH (n1:Persion),(n2:Persion) WHERE n1.name='刘诗诗' AND n2.name='我' CREATE(n1)-[:贷款{金额:3000}] ->(n2) return n1,n2

二,Neo4j的删除

2.1删除节点

 2.1.1无关系的节点删除

create(n:Persion{name:"北乔峰",age:30})

删除操作

Match (n:Persion{name:"北乔峰"}) delete n

检查,已删除

2.1.2 有关系的节点删除

有关系存在的节点在删除时,需要先删除关系,否则会报错,提示也先删除关系

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

删除关系

删除关系之前,需要找到这个关系

match (p:Persion{name:"高飞"})-[f:日出场费] ->(n:Persion{name:"林青霞"}) delete f

两个节点的名称不能是一样的,若都是p,则匹配不到数据。

一个p,一个n,不一样,才能执行。删除关系后,节点还是存在的。

若果关系找的不对,如上。真实的关系是

match (p:Persion{name:"高飞"})-[f:日出场费] ->(n:Persion{name:"林青霞"}) delete f

而如果写的语句的关系是

match (p:Persion{name:"林青霞"})-[f:日出场费] ->(n:Persion{name:"高飞"}) delete f

执行语句,删除报错。

同时删除节点和关系

在删除的时候,除了关系f外,将节点名称也加上,就都删除了。

match (p:Persion{name:"高飞"})-[f:日出场费] ->(n:Persion{name:"林青霞"}) delete f,p,n

先恢复下节点关系

match (p:Persion),(n:Persion) where p.name="高飞" and n.name="林青霞" create (p)-[:日出场费{金额:30}] ->(n) return p,n

在执行上面的命令

2.1.3 删除所有

MATCH (n:ru_yi_zhuan) detach delete n;

 

 

我们来逐部分解析这条语句:

1. MATCH (n:ru_yi_zhuan)

  • MATCH 是用于查找图中节点或关系的关键字。
  • (n:ru_yi_zhuan) 表示查找所有类型为 ru_yi_zhuan 的节点,并将这些节点赋值给变量 n
    • n 是一个变量,代表每个匹配到的节点。
    • :ru_yi_zhuan 是一个标签,表示这些节点属于 ru_yi_zhuan 类型。标签可以用来对节点进行分类。

2. detach

  • DETACH 是一个关键字,用于删除节点时,自动删除该节点与其他节点之间的所有关系。
  • 通常,如果你删除一个节点并且没有使用 DETACH,如果该节点与其他节点有关系,Neo4j 会拒绝删除该节点(因为数据库会保护图的完整性,防止孤立节点)。使用 DETACH 后,它会自动删除与该节点相连的所有关系。

3. DELETE n

  • DELETE 是用来删除节点或关系的关键字。
  • n 是之前通过 MATCH 查找到的节点变量,DELETE n 会删除这些节点。

总结:

这条查询的作用是:

  1. 查找图数据库中所有标签为 ru_yi_zhuan 的节点。
  2. 删除这些节点及它们与其他节点之间的所有关系(通过 DETACH)。
  3. 最后,删除这些节点本身。

注意: 运行这条语句会永久删除所有匹配到的 ru_yi_zhuan 类型的节点及其关系,请确保在执行前已经备份了数据或者确认操作无误。

三,节点修改

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

选中节点后,即可看到节点的id,id值是库自动生成

3.1 给节点修改标签

match(t:Persion) where id(t)=2 set t.age = 22

3.2 修改,新增属性

match(t:Persion) where id(t)=2 set t.sex="男",t.likes="钱"

四,查找

4.1 查找节点

语法最后,要有return

match(p:Persion) where p.sex = '男' return p

 

4.2 查找关系

match(p:Persion) -[:贷款] -> (np:Persion) return p,np

match(p:Persion) -[:贷款] -> (np:Persion):

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

return p, np:

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

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

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

新建一个关系,此时,贷款 的关系有2条,4个节点,查询的结果为何呢。

 查询正确,2个关系,4个节点。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词