neo4j的CQL命令实例演示

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

CQL命令实例演示

  • 一、缩写
  • 二、Node节点操作
    • 1. 创建节点
    • 2. 查询节点
      • 2.1 查询全部节点
      • 2.2 查询指定标签的节点
      • 2.3 查询指定标签指定属性的节点
    • 3. 修改节点
    • 4. 删除节点
      • 4.1 删除指定标签指定属性的节点
      • 4.2 删除指定标签节点
      • 4.3 删除全部节点
      • 4.4 永久删除
  • 三、Relationship关系操作
    • 1. 创建关系
    • 2. 查询关系
      • 2.1 查询所有的关系
      • 2.2 条件查询关系
      • 2.3 条件查询关系-where
      • 2.4 查询指定两个节点的关系
    • 3. 修改关系
      • 3.1 批量修改关系信息
      • 3.2 修改指定两个节点的关系
      • 3.3 指定开始节点来修改关系信息
      • 3.4 指定结束节点来修改关系信息
    • 4. 删除关系
      • 4.1 批量删除指定标签的所有关系
      • 4.2 删除指定标签指定属性为开始节点的所有关系
      • 4.3 删除指定标签指定属性为结束节点的所有关系
      • 4.5 删除指定标签指定属性的两个节点的所有关系
      • 4.2 删除指定标签为开始节点的所有关系
      • 4.1 批量删除所有关系


一、缩写

n :node节点
L :Label标签
p :属性名
v :属性值
r :关系
R :关系标签

属性值为字符串或者数字,其余好像会报错,目前尝试这两个类型不会报错
文章中的语法的缩写字母并非固定,可以任意字母更换,但推荐使用对应缩写,方便理解和记忆。


二、Node节点操作

对node节点的增删改查操作

1. 创建节点

create新增,语法

create(n:L{p1:v1,p2:v2}) return n

花括号中节点的属性可以是一个也可以是多个
不定义属性时属性值为空,仅有一个id默认属性
如:创建u节点,标签为USER,属性name值为李白,属性age为28,并返回创建的节点

create(u:USER{name:"李白",age:28}) return u

在这里插入图片描述
为了后面的演示,我们这里多创建几个,依次执行以下命令

	//注意,age对应的值都是数字类型create(u:USER{name:"王昭君",age:24})create(u:USER{name:"貂蝉",age:20})create(u:USER{name:"吕布",age:26})//注意,price对应的值都是字符串类型create(c:CAR{name:"奔驰",price:"30"})create(c:CAR{name:"宝马",price:"29"})create(c:CAR{name:"奥迪",price:"33"})create(c:CAR{name:"比亚迪",price:"25"})

注:这里需要注意,在创建节点时,属性name的值会显示在查看时的节点中心,如果属性名不是name可能不会显示(不一定),我用userName作为属性名它是不显示的,这点需要注意,不过不影响使用,信息都会在节点中,只是看浏览器中节点中心没有名称了而已

2. 查询节点

match查询

2.1 查询全部节点

语法(括号可以省略)

match(n) return(n)
//或
match(n) return n

在浏览器中输入上述命令查询所有节点
在这里插入图片描述

2.2 查询指定标签的节点

语法

match(n:L)

如:查看CAR标签的所有节点

match(c:CAR)return c

这里只会显示CAR标签的节点
在这里插入图片描述

2.3 查询指定标签指定属性的节点

语法

match(n:L{p1:v1,p2:v2})

如:查看标签为CAR属性名为name值为宝马的节点

match(c:CAR{name:"奥迪"})

在这里插入图片描述

3. 修改节点

set修改,但需要配合match搜索使用,语法

match(n:L{p1:v1,p2:v2})set n.p1=v11,n.p2=v22

如修改标签为CAR属性name值为奥迪的节点,将其属性price的值改为40

match(c:CAR{name:"奥迪"})set c.price=40

不适用return时返回的是一行描述信息
在这里插入图片描述

match(c:CAR{name:"奥迪"})set c.price=41 return c

加上return返回的内容就是如数据了,如下
在这里插入图片描述

4. 删除节点

delete删除,如果节点存在关系,则无法使用delete删除,此时需要在delete前加上detach关键字强制删除
(为了不重新创建关系,删除节点部分是在删除关系后操作的,属于整篇文章最后演示的内容)
先查看全部节点

match(n)return n

在这里插入图片描述

4.1 删除指定标签指定属性的节点

语法

match(n:L{p1:v1,p2:v2})delete n

如:删除标签为CAR属性name为宝马的节点

match(c:CAR{name:"宝马"}) delete c

在这里插入图片描述
查看全部节点验证

match(n)return n

宝马已被删除
在这里插入图片描述

4.2 删除指定标签节点

语法

match(n:L) delete n

如删除标签为CAR的所有节点

match(c:CAR) delete c

在这里插入图片描述
查看全部节点验证

match(n)return n

CAR标签的节点已全被删除
在这里插入图片描述

4.3 删除全部节点

语法

match(n) delete n

在这里插入图片描述

查看全部节点验证

match(n)return n

所有节点已全被删除
在这里插入图片描述

4.4 永久删除

如果节点包含关系,则无法直接使用delete删除,需要使用detach配置delete强制删除
使用detach可以实现永久删除数据,语法

match(n) detach delete n

三、Relationship关系操作

我们先多创建两个USER节点

    create(u:USER{name:"亚瑟",age:27})create(u:USER{name:"安其拉",age:22})

再多创建几个CAR节点

    create(c:CAR{name:"小鹏",price:"28"})create(c:CAR{name:"蔚来",price:"24"})create(c:CAR{name:"极氪",price:"30"})create(c:CAR{name:"智己",price:"31"})

1. 创建关系

创建两个节点之间的关系,并给关系添加属性信息,添加后返回节点和关系的图数据结果,语法

match(n1:L1{p1:v1,p2:v2}),(n2:L2{p11:v11}) create(n1)-[r:R{p111:v111}]->(n2) return n1,r,n2

如在标签为USER属性name为李白的节点和标签为CAR属性name为宝马的节点之间创建关系
关系标签为BUY标签属性date值为20230728,然后返回创建后的结果

match(u:USER{name:"李白"}),(c:CAR{name:"宝马"}) create (u)-[r:BUY{date:"20230728"}]->(c) return u,r,c

在这里插入图片描述
当然了,也可以将箭头反过来,创建关系标签为BELONG属性expire值为100

match(u:USER{name:"李白"}),(c:CAR{name:"宝马"}) create (u)<-[r:BELONG{expire:"100"}]-(c) return u,r,c

在这里插入图片描述
为了方便后续演示,这里我们多创建几个关系

    match(u:USER{name:"李白"}),(c:CAR{name:"奥迪"}) create (u)-[r:BUY{date:"20230728"}]->(c) return u,r,cmatch(u:USER{name:"李白"}),(c:CAR{name:"奥迪"}) create (u)<-[r:BELONG{expire:"200"}]-(c) return u,r,cmatch(u:USER{name:"亚瑟"}),(c:CAR{name:"比亚迪"})create (u)-[r:BUY{date:"20230729"}]->(c) return u,r,cmatch(u:USER{name:"貂蝉"}),(c:CAR{name:"智己"})create (u)-[r:BUY{date:"20230830"}]->(c) return u,r,cmatch(u:USER{name:"安其拉"}),(c:CAR{name:"小鹏"})create (u)-[r:BUY{date:"20230720"}]->(c) return u,r,cmatch(u:USER{name:"王昭君"}),(c:CAR{name:"极氪"})create (u)-[r:BUY{date:"20230930"}]->(c) return u,r,cmatch(u:USER{name:"吕布"}),(c:CAR{name:"奔驰"})create (u)-[r:BUY{date:"20230930"}]->(c) return u,r,c

2. 查询关系

同样的查询关系也是用match

2.1 查询所有的关系

语法

match(n1)-[r]->(n2)return n1,r,n2

这里好像有没有箭头都可以,>可省略
如查询所有节点的关系

match(u)-[r]->(c) return u,r,c

只会查看所有带关系的数据,不存在关系的数据不在其中
在这里插入图片描述
如果return后不加节点只有关系参数r,则返回的是json格式的数据信息

match(u)-[r]->(c) return r

在这里插入图片描述

2.2 条件查询关系

查询n1节点属性p1、p2对应的所有关系,语法

match(n1:L1{p1:v1,p2:v2})-[r]->(n2) return n1,r,n2

如:查看USER标签的属性name为李白的节点的所有关系

match(u:USER{name:"李白"})-[r]->(c)return u,r,c

在这里插入图片描述

2.3 条件查询关系-where

使用where子句查询属性p1值为v1属性p2值为v2的n1节点的所有关系

match(n1)-[r]->(n2) where n1.p1=v1 and n1.p2=v2 return n1,r,n2

如:查看USER标签的属性name为李白的节点的所有关系

match(u)-[r]-(c) where u.name="李白" return u,r,c

在这里插入图片描述

2.4 查询指定两个节点的关系

语法

match(n1:L1{p1:v1})-[r]->(n2:L2{p2:v2})return n1,r,n2

如查看USER标签的属性name为李白的节点和CAR标签属性name为宝马的所有关系

match(u:USER{name:"李白"})-[r]->(c:CAR{name:"宝马"})return u,r,c

在这里插入图片描述
或者(where子句查询)

match(u)-[r]-(c) where u.name="李白" and c.name="宝马" return u,r,c

在这里插入图片描述

3. 修改关系

3.1 批量修改关系信息

修改指定关系标签的指定属性信息
将标签为R的所有关系属性pr1改为vr1,并返回修改后的图数据,语法

match(n1)-[r]-(n2) set r.pr1 = vr1 return n1,r,n2
//或
match(n1)-[r:R]-(n2) set r.pr1 = vr1 return n1,r,n2

如:将所有关系标签为BELONG的属性expire的值改为200

match(u)-[r:BELONG]-(c) set r.expire=200 return u,r,c

我们可以看到只有李白有BELONG关系,且这两个关系的属性expire都改为了200
在这里插入图片描述

3.2 修改指定两个节点的关系

修改两个指定节点的指定关系标签的关系属性信息,语法

match(n1:L1{p1:v1})-[r]->(n2:L2{p2:v2}) set r.pr1=vr1 return n1,r,n2
//或
match(n1:L1{p1:v1})-[r:R]->(n2:L2{p2:v2}) set r.pr1=vr1 return n1,r,n2

如:修改李白和奥迪两个节点的BUY关系的属性,将date的值改为20230808

match(u:USER{name:"李白"})-[r:BUY]->(c:CAR{name:"奥迪"}) set r.date="20230808" return u,r,c

在这里插入图片描述

3.3 指定开始节点来修改关系信息

match(n1:L1{p1:v1})-[r:R]->(n2) set r.pr1=vr1  return n1,r,n2

如:指定李白为开始节点,根据开始节点修改李白对应的BUY标签关系的信息,将date属性值都改为20230909

match(u:USER{name:"李白"})-[r:BUY]->(c) set r.date="20230909" return u,r,c

在这里插入图片描述

3.4 指定结束节点来修改关系信息

箭头可指向右侧也可指向左侧

match(n1:L1{p1:v1})<-[r:R]-(n2) set r.pr1=vr1  return n1,r,n2

如:指定李白为结束节点,根据结束节点修改李白对应的BELONG标签关系的信息,将expire属性值都改为500

match(u:USER{name:"李白"})<-[r:BELONG]-(c) set r.expire="500" return u,r,c

在这里插入图片描述

4. 删除关系

4.1 批量删除指定标签的所有关系

语法

match(n1)-[r:R]->(n2) delete r

如:删除BELONG标签的所有关系

match(u)-[r:BELONG]->(c) delete r

在这里插入图片描述
查看所有关系,看是否被删除

match(u)-[r]->(c)return u,r,c

的确删除了
在这里插入图片描述

4.2 删除指定标签指定属性为开始节点的所有关系

语法

match(n1:L1{p1:v1})-[r]->(n2) delete r

如:删除以李白为开始节点的所有关系

match(u:USER{name:"李白"})-[r]->(c) delete r

在这里插入图片描述
查看所有关系,看是否被删除

match(u)-[r]->(c)return u,r,c

没有看到李白的节点,表示已经没有存在的关系了
在这里插入图片描述

4.3 删除指定标签指定属性为结束节点的所有关系

语法

match(n1:L1{p1:v1})<-[r]-(n2) delete r

如:删除以比亚迪为结束节点的所有关系

match(c:CAR{name:"比亚迪"})<-[r]-(u) delete r

在这里插入图片描述
查看所有关系,看是否被删除

match(u)-[r]->(c)return u,r,c

已经没有了比亚迪节点的关系
在这里插入图片描述

4.5 删除指定标签指定属性的两个节点的所有关系

语法

match(n1:L1{p1:v1})-[r]-(n2:L2{p2:v2}) delete r

如:删除安其拉到小鹏之间的关系

match(u:USER{name:"安其拉"})-[r]->(c:CAR{name:"小鹏"}) delete r

在这里插入图片描述
查看所有关系,看是否被删除

match(u)-[r]->(c)return u,r,c

安其拉已经无了
在这里插入图片描述

4.2 删除指定标签为开始节点的所有关系

语法

match(n1:L1)-[r]->(n2) delete r

如:删除以USER标签为开始节点的所有关系

match(u:USER)-[r]->(c) delete r

在这里插入图片描述
查看所有关系,看是否被删除

match(u)-[r]->(c)return u,r,c

含有关系的节点已经全部没了
在这里插入图片描述

4.1 批量删除所有关系

语法

match(n1)-[r]->(n2) delete r

举例,可直接使用
我这里直接用

match(u)-[r]->(c) delete r

前面已经删除完了,不演示了。


以上就是CQL命令增删改查演示内容,感谢阅读,祝君暴富!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/86081.html

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

相关文章

92. 反转链表 II

92. 反转链表 II 题目-中等难度示例1. 获取头 反转中间 获取尾 -> 拼接2. 链表转换列表 -> 计算 -> 转换回链表 题目-中等难度 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点…

elk开启组件监控

elk开启组件监控 效果&#xff1a; logstash配置 /etc/logstash/logstash.yml rootnode1:~# grep -Ev "^#|^$" /etc/logstash/logstash.yml path.data: /var/lib/logstash path.logs: /var/log/logstash xpack.monitoring.enabled: true xpack.monitoring.elasti…

深兰科技熊猫汽车牵手首恒出行,人工智能技术提升商用车运营服务

8月8日&#xff0c;深兰科技集团旗下熊猫新能源汽车(上海)有限公司(下称熊猫新能源汽车)与河南首恒出行服务有限公司(下称首恒出行)在深兰科技总部举行签约仪式&#xff0c;首恒出行将向熊猫新能源汽车年定向采购10000台商用车&#xff0c;双方将在汽车后市场领域进行技术合作。…

【ElasticSearch入门】

目录 1.ElasticSearch的简介 2.用数据库实现搜素的功能 3.ES的核心概念 3.1 NRT(Near Realtime)近实时 3.2 cluster集群&#xff0c;ES是一个分布式的系统 3.3 Node节点&#xff0c;就是集群中的一台服务器 3.4 index 索引&#xff08;索引库&#xff09; 3.5 type类型 3.6 doc…

Linux学习————redis服务

目录 一、redis主从服务 一、redis主从服务概念 二、redis主从服务作用 三、缺点 四、主从复制流程 五、搭建主从服务 配置基础环境 下载epel源&#xff0c;下载redis​编辑 二、哨兵模式 一、概念 二、作用 三、缺点 四、结构 五、搭建 修改哨兵配置文件 启动服务…

IntelliJ中文乱码问题

1、控制台乱码 运行时控制台输出的中文为乱码&#xff0c;解决方法&#xff1a;帮助 > 编辑自定义虚拟机选项… > 此时会自动创建出一个新文件&#xff0c;输入&#xff1a;-Dfile.encodingUTF-8&#xff0c;然后重启IDE即可&#xff0c;操作截图如下&#xff1a; 2、…

SAP从入门到放弃系列之BOM组-Part1

目录 BOM组两种模式&#xff1a; 创建BOM的方式 方式一&#xff1a;直接在每个工厂分别创建BOM。 方式二&#xff1a;创建BOM组&#xff0c;然后每个工厂参考创建 方式三&#xff1a;创建BOM组&#xff0c;每个工厂参考创建&#xff0c;针对有特殊的工厂复制BOM组后进行调…

c++中的继承

文章目录 1.继承的概念及定义1.1继承的概念1.2继承的定义1.2.1定义格式1.2.2继承关系和访问限定符1.2.3继承基类成员访问方式的变化 2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数5.继承与友元6.继承与静态成员7.复杂的菱形继承及菱形虚拟继承 1.继承的概…

AI Deep Reinforcement Learning Autonomous Driving(深度强化学习自动驾驶)

AI Deep Reinforcement Learning Autonomous Driving&#xff08;深度强化学习自动驾驶&#xff09; 背景介绍研究背景研究目的及意义项目设计内容算法介绍马尔可夫链及马尔可夫决策过程强化学习神经网络 仿真平台OpenAI gymTorcs配置GTA5 参数选择行动空间奖励函数 环境及软件…

途乐证券-最准确的KDJ改良指标?

KDJ目标是技术剖析的一种重要目标之一&#xff0c;它是利用随机目标&#xff08;%R&#xff09;发展而来的&#xff0c;是一种反映商场超买和超卖状况的买卖目标。KDJ目标由快线&#xff08;K线&#xff09;、慢线&#xff08;D线&#xff09;和随机值&#xff08;J线&#xff…

Flutter:文件上传与下载(下载后预览)

Dio dio是一个强大的Dart Http请求库&#xff0c;提供了丰富的功能和易于使用的API&#xff0c;支持文件上传和下载。 这个就不介绍了&#xff0c;网上有很多的封装案例。 background_downloader 简介 适用于iOS&#xff0c;Android&#xff0c;MacOS&#xff0c;Windows和L…

Django实现音乐网站 ⑻

使用Python Django框架制作一个音乐网站&#xff0c; 本篇主要是后台对单曲原有功能的基础上进行部分功能实现和显示优化。 目录 新增编辑 歌手下拉显示修改 设置歌曲时长 安装eyed3库 获取mp3时长 歌曲时长字段修改 重写save方法 增加歌手单曲数量 查询歌手单曲数量 …

计算机网络 网络层 IPv4地址

A类地址第一位固定0 B类10 其下同理

谈谈闭包和闭包使用场景

一、什么是闭包 概念&#xff1a;闭包还是作用域的一种特殊应用 二、触发闭包的情况 1.函数当做返回值被返回 2.函数当做参数被传递 3.自执行匿名函数 //情况1&#xff1a;函数当做返回值被返回 function fn(){const a 1;return function(){console.log(a) //1}; } const a …

平替 Docker - 玩转容器新利器 Podman Desktop (视频)

《OpenShift 4.x HOL教程汇总》 在 podman-desktop 1.2.1 podman 4.4 环境中验证。 文章目录 什么是 podman 和 podman-desktop安装 podman 和 podman-desktop 基本环境Image、Container 和 Pod 的基本操作拉取 Image运行 Container 将 Pod 部署到 Kubernetes安装 Kind 扩展插…

UI美工设计的主要职责(合集)

UI美工设计的主要职责1 职责&#xff1a; 1、执行公司的规章制度及专业管理办法; 2、 负责重点项目的原型设计和产品流程设计、视觉设计&#xff0c;优化网站和移动端的设计流程和规范&#xff0c;制定产品 UI/UE规范及文档编写; 3、负责使用PS、AI、illustrator、MarkMan、…

什么是Node js?什么是React?有什么区别

JavaScript是当今最流行的编程语言之一&#xff0c;它用于开发多种技术&#xff0c;两种这样的技术是Node.js和React。许多学生很难理解Nodejs和React之间的区别。 React和Nodejs之间的主要区别在于它们的使用位置。Nodejs 用于开发应用程序的服务器端&#xff0c;而Reactjs用于…

体验自制免费开源闯关学SQL

文章目录 前言mac安装nodejs启动体验 前言 sql是常用必不可少的一种语言&#xff0c;我们都或有各种各样的学习经历&#xff0c;最近看鱼皮大佬开源了一款自制的闯关学SQL项目&#xff0c;该项目是纯前端语言&#xff0c;不需要太多依赖以及前置知识&#xff0c;直接下载就可以…

golang协程池库tunny实践

前言 线程池大家都听过&#xff0c;其主要解决的是线程频繁创建销毁带来的性能影响&#xff0c;控制线程数量。 go协程理论上支持百万协程并发&#xff0c;协程创建调度的消耗极低&#xff0c;但毕竟也是消耗对吧。 而且协程池可以做一些额外的功能&#xff0c;比如限制并发&…

解决ElementUI动态表单校验验证不通过

这里记录一下&#xff0c;写项目时遇到的一个问题&#xff1a;就是动态渲染的表单项&#xff0c;加验证规则后一直不通过&#xff01;&#xff01;&#xff01; 原代码 html部分&#xff1a; <el-form-itemv-for"(teaclass,index) in addFom.classIds":label&quo…