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

目录

一,Neo4j的增

1.1.新增节点

1.2.新增关系

1.2.1创建节点时,创建关系

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

二,Neo4j的删除

2.1删除节点

2.1.1无关系的节点删除

[2.1.2 有关系的节点删除](#2.1.2 有关系的节点删除)

三,节点修改

[3.1 给节点修改标签](#3.1 给节点修改标签)

[3.2 修改,新增属性](#3.2 修改,新增属性)

四,查找

[4.1 查找节点](#4.1 查找节点)

[4.2 查找关系](#4.2 查找关系)

一,Neo4j的增

1.1.新增节点

bash 复制代码
create (n:Persion {name:'刘诗诗',age:32})

解释:

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

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

在创建一个Person标签的节点

查看库数据

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

查看数据

1.2.新增关系

1.2.1创建节点时,创建关系

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

bash 复制代码
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在已有的节点上,创建关系

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

二,Neo4j的删除

2.1删除节点

2.1.1无关系的节点删除

bash 复制代码
create(n:Persion{name:"北乔峰",age:30})

删除操作

bash 复制代码
Match (n:Persion{name:"北乔峰"}) delete n

检查,已删除

2.1.2 有关系的节点删除

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

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

删除关系

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

bash 复制代码
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外,将节点名称也加上,就都删除了。

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

先恢复下节点关系

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

在执行上面的命令

2.1.3 删除所有

bash 复制代码
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 类型。标签可以用来对节点进行分类。
  1. detach
  • DETACH 是一个关键字,用于删除节点时,自动删除该节点与其他节点之间的所有关系。
  • 通常,如果你删除一个节点并且没有使用 DETACH,如果该节点与其他节点有关系,Neo4j 会拒绝删除该节点(因为数据库会保护图的完整性,防止孤立节点)。使用 DETACH 后,它会自动删除与该节点相连的所有关系。
  1. DELETE n
  • DELETE 是用来删除节点或关系的关键字。
  • n 是之前通过 MATCH 查找到的节点变量,DELETE n 会删除这些节点。

总结:

这条查询的作用是:

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

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

三,节点修改

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

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

3.1 给节点修改标签

bash 复制代码
match(t:Persion) where id(t)=2 set t.age = 22

3.2 修改,新增属性

bash 复制代码
match(t:Persion) where id(t)=2 set t.sex="男",t.likes="钱"

四,查找

4.1 查找节点

语法最后,要有return

bash 复制代码
match(p:Persion) where p.sex = '男' return p

4.2 查找关系

bash 复制代码
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个节点。

相关推荐
火云牌神3 小时前
本地大模型编程实战(28)查询图数据库NEO4J(1)
python·llm·neo4j·langgraph
小芳矶3 小时前
neo4j暴露公网ip接口——给大模型联通知识图谱
tcp/ip·知识图谱·neo4j
麦麦大数据2 天前
vue+neo4j+flask 音乐知识图谱推荐系统
vue.js·mysql·flask·知识图谱·neo4j·推荐算法·音乐推荐
神仙别闹2 天前
基于Python+Neo4j实现新冠信息挖掘系统
开发语言·python·neo4j
Anarkh_Lee3 天前
Neo4j在win下安装教程(docker环境)
docker·容器·neo4j
朴拙数科3 天前
基于LangChain与Neo4j构建企业关系图谱的金融风控实施方案,结合工商数据、供应链记录及舆情数据,实现隐性关联识别与动态风险评估
数据库·langchain·neo4j
skywalk81634 天前
Graph Database Self-Managed Neo4j 知识图谱存储实践2:通过官方新手例子入门(未完成)
数据库·知识图谱·neo4j