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.mzph.cn/bicheng/79754.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rollout 是什么:机器学习(强化学习)领域

rollout 是什么:机器学习(强化学习)领域 指从特定初始状态开始,按照某个策略或模型进行一系列动作和状态转移,直到达到终止状态或预定时间步数 。比如: 迷宫任务:强化学习代理在迷宫中,从起始点出发,按某策略(如随机选方向走)进行移动,直到找到出口或达到最大移动…

stm32之TIM定时中断详解

目录 1.引入1.1 简介1.2 类型1.2.1 基本定时器1.2.2 通用定时器1. 触发控制单元 (Trigger Control Unit)2. 输入捕获单元 (Input Capture Unit)3. 输出比较单元 (Output Compare Unit)4. CNT 计数器5. 自动重装载寄存器 (ARR)6. 预分频器 (PSC)7. 中断与 DMA 事件8. 刹车功能 (…

centos8源码安装openssl

前言: 在使用python3.11部署运行FastAPI时,由于其uvicorn需要使用openssl模块,导致没有安装openssl的服务器项目运行不起来. 【第一步】 我的网盘下载openssl-1.1.1n.tar.gz 提取码: vay9 【第二步】 上传到服务器解压 tar -zxvf opens…

vue3 动态修改系统title

vue3 动态修改系统title 修改前 修改后 1、封装 useTitle 工具函数 创建组合式 API,通过 watchEffect 监听标题变化: // composables/useTitle.js import { ref, watchEffect } from vue;export function useTitle(initialTitle) {const title r…

比较两种判断相同二叉树的方法:递归与遍历序列对比

在二叉树操作中,判断两棵树是否相同是一个常见的问题。本文将对比两种不同的解决方案:递归法和遍历序列对比法,分析它们的优缺点,并探讨为何递归法是更优的选择。 问题描述 给定两棵二叉树的根节点 p 和 q,判断它们是…

从0开始学习大模型--Day01--大模型是什么

初识大模型 在平时遇到问题时,我们总是习惯性地去运用各种搜索引擎如百度、知乎、CSDN等平台去搜索答案,但由于搜索到的内容质量参差不齐,检索到的内容只是单纯地根据关键字给出内容,往往看了几个网页都找不到答案;而…

【AI大模型】SpringBoot整合Spring AI 核心组件使用详解

目录 一、前言 二、Spring AI介绍 2.1 Spring AI介绍 2.2 Spring AI主要特点 2.3 Spring AI核心组件 2.4 Spring AI应用场景 2.5 Spring AI优势 2.5.1 与 Spring 生态无缝集成 2.5.2 模块化设计 2.5.3 简化 AI 集成 2.5.4 支持云原生和分布式计算 2.5.5 安全性保障…

洛谷 P9007 [入门赛 #9] 最澄澈的空与海 (Hard Version)

这道题可不入门。 [Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription] 给定 n n n,求有多少组 ( x , y , z ) (x,y,z) (x,y,z) 满足: x − y z n ! x-\dfrac{y}{z}n! x−zy​n! x − y z n ! n \dfrac{x-y…

PostgreSQL 的 pg_stat_file 函数

PostgreSQL 的 pg_stat_file 函数 pg_stat_file 是 PostgreSQL 提供的一个系统管理函数,用于获取文件系统上文件的元数据信息。这个函数对于数据库管理员进行文件级别的监控和诊断非常有用。 一 函数基本语法 pg_stat_file(filename text [, missing_ok boolean …

关于麒麟服务器实现docker-compose服务开机自启

我本地服务器环境是麒麟V10版本: 首先确定docker-compose服务绝对路径命令: which docker-compose我这里输出是:/usr/bin/docker-compose 编辑服务文件: sudo vim /etc/systemd/system/docker-compose-webup.service[Unit] Desc…

基于 jQuery 实现复选框全选与选中项查询功能

在 Web 开发中,复选框是常见的交互元素,尤其是在涉及批量操作、数据筛选等场景时,全选功能和选中项查询功能显得尤为重要。本文将介绍如何使用 HTML、CSS 和 jQuery 实现一个具备全选、反选以及选中项查询功能的复选框组,帮助开发…

AfuseKt2.4.2 | 支持阿里云盘、Alist等平台视频播放,具备自动海报墙刮削功能的强大播放器

AfuseKt是一款功能强大的安卓端在线视频播放器,支持播放阿里云盘、Alist、WebDAV等平台的视频内容。它具备自动海报墙刮削功能,能自动生成影片信息和海报墙,提供良好的视觉体验。此外,它还支持倍速播放、字幕、音轨切换等多种实用…

Netlink在SONiC中的应用

Netlink在SONiC中的应用 Netlink介绍 Netlink 是 Linux 内核态程序与用户空间程序之间进行通信的机制之一,原本是用于传递网络协议栈中的各种控制消息。它采用和套接字(socket)编程接口相同的形式,常用于配置内核网络子系统&…

语音合成之十一 提升TTS语音合成效果:低质量数据清洗、增强与数据扩增

低质量数据清洗、增强与数据扩增 1. 引言:TTS的基石——数据质量2. 基础:TTS数据准备工作流2.1 规划:定义蓝图2.2 执行:从原始数据到训练就绪格式2.3 最佳实践与可复现性 3. 攻克缺陷:低质量语音数据的清洗与增强3.2 手…

Java IO流分类与记忆方法

Java IO流分类与记忆方法 在Java IO流体系中,理解节点流和包装流的区别是掌握IO编程的关键。 一、核心分类标准 1. 节点流(Node Stream) 直接对接数据源:直接连接物理IO设备(文件、网络、内存等)基础功能:提供最基础的读写能力命名特征:通常包含数据源类型名称(如Fi…

架构师如何构建个人IP:职业规划与业务战略的双重提升

在数字化时代,软件架构师的角色已从单纯的技术专家转变为兼具技术领导力和业务影响力的复合型人才。如何构建个人IP,提升行业影响力,成为架构师职业发展的关键课题。本文从个人认知、业务战略、架构决策、产品思维四个维度,探讨架…

vscode运行python的快捷键

以下是一些在 VS Code 中运行 Python 代码的常用快捷键: 运行 Python 文件 Windows/Linux :Ctrl F5。此快捷键会直接运行当前打开的 Python 文件,不会自动进入调试模式。若之前有配置过终端,一般会使用配置好的终端来运行&…

使用OpenCV 和 Dlib 实现疲劳检测

文章目录 引言1.相关技术介绍2. 系统原理2.1 眼睛纵横比(EAR)算法2.2 系统工作流程 3.代码解析3.1 关键函数说明3.2 主循环逻辑 4.实际应用效果5.参数调优建议6.总结 引言 疲劳驾驶是交通事故的主要原因之一。本文将介绍如何使用Python和计算机视觉技术构建一个实时疲劳驾驶检…

VBA实现后入先出(LIFO)库存统计

先入先出(FIFO)比较容易理解,买入早的优先卖出。与之对应的是后人先出(LIFO),就是优先卖出最近买入的,例如:第8行卖出2K,当天还没有买入记录,只能找前一天的买…

Python中的客户端和服务端交互的基本内容

目录 网络协议 网络的通信方式 需要安装的组件和需要导入的包模块 安装的组件 导入包模块 如何创建客户端 如何创建服务端 网络协议 IPV4:是互联网协议的第四版,也是目前广泛使用的网络协议。它使用32位地址格式,理论上可以提供约43亿…