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

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

相关文章:

  • 从SOA到微服务:架构演进之路与实践示例
  • 外部存储器接口:EMIF总线
  • 中国人工智能发展战略与个体发展机遇研究
  • 分词概念,中英文不同语言分词原理,以及中文分词的所有方法(基于词典匹配的分词方法、 基于语义理解的分词方法、 基于词频统计的分词方法)
  • CentOS上搭建 Python 运行环境并使用第三方库
  • Qt5与现代OpenGL学习(三)纹理
  • Android 实现一个隐私弹窗
  • c网络库libevent的http常用函数的使用(附带源码)
  • 打造惊艳的渐变色下划线动画:CSS实现详解
  • Kotlin -> lateinit 和 lazy 详解
  • 聚焦智能体未来,领驭科技在微软创想未来峰会大放异彩
  • 按键精灵安卓ios辅助工具脚本:实用的文件插件(lua开源)
  • 私有知识库 Coco AI 实战(四):打造 ES 索引参数小助手
  • 前端漏洞不扫描理由
  • Linux systemd 从理论到实践:现代系统管理的核心工具
  • C++ 单例对象自动释放(保姆级讲解)
  • Hearts of Iron IV 钢铁雄心 4 [DLC 解锁] [Windows SteamOS macOS]
  • 机器学习-入门-决策树(1)
  • 第17节:传统分类模型-随机森林与决策树
  • day10 python机器学习全流程实践
  • 农业农村部:把住能繁母猪存栏量“总开关”,引导养殖场户优化母猪存栏结构、合理控制产能
  • 西藏阿里地区日土县连发两次地震,分别为4.8级和3.8级
  • 助力企业高质量出海,上海静安发放服务包、服务券
  • 初步结果显示,卡尼领导的加拿大自由党在联邦众议院选举中获胜
  • 长三角议事厅·周报|长三角游戏出海,关键在“生态输出”
  • 俄罗斯总统普京:5月8日零时至11日零时实施停火