当前位置: 首页 > web >正文

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个节点。

http://www.xdnf.cn/news/2894.html

相关文章:

  • java web 过滤器
  • 华为云IAM用户权限设置主要有哪些问题需要注意?
  • 医疗生态全域智能化:从技术革新到价值重塑的深度探析
  • 激光驱鸟:以科技重构生态防护边界
  • JavaAPI — 包装类与正则表达式
  • 从厨房到云端:从预制菜到云原生
  • kotlin flatMap 变换函数的特点和使用场景
  • SpringBoot Actuator未授权访问漏洞的全面解析与解决方案
  • 【uom】 0 配置文件(Cargo.toml)
  • vscode chrome调试怎么在所有浏览器都好使
  • jmeter-Beashell获取请求body data
  • 音视频之H.265/HEVC网络适配层
  • 打造惊艳的渐变色下划线动画:CSS实现详解
  • [C++]C++20协程的原理
  • 【MySQL】聚合查询 和 分组查询
  • 大脑、机器人与贝叶斯信念及AI推理
  • Spring MVC 进阶 - 拦截器、异常处理、数据校验
  • 【网络编程】UDP协议 和 Socket编程
  • Nginx核心功能
  • 数据一致性巡检总结:基于分桶采样的设计与实现
  • 青少年编程与数学 02-018 C++数据结构与算法 16课题、贪心算法
  • HCIA-Datacom 高阶:VLAN、VLANIF 与静态路由综合实验
  • 清华与智谱联合发布TTS模型GLM-4-Voice,支持情绪、语气控制,多语言,实时效果很不错~
  • nginx 核心功能
  • Python异常抛出指南
  • vue3使用<el-date-picker分别设置开始时间和结束时间时,设置开始时间晚于当前时间,开始时间早于结束时间,结束时间晚于开始时间
  • 完整的 SSL 证书生成与 Spring Boot 配置流程
  • n8n部署docker本地化备份和数据持久化和迁移问题
  • timerfd定时器时间轮定时器
  • 政策支持与市场驱动:充电桩可持续发展的双轮引擎