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,c
    match(u:USER{name:"李白"}),(c:CAR{name:"奥迪"}) create (u)<-[r:BELONG{expire:"200"}]-(c) return u,r,c
    match(u:USER{name:"亚瑟"}),(c:CAR{name:"比亚迪"})create (u)-[r:BUY{date:"20230729"}]->(c) return u,r,c
    match(u:USER{name:"貂蝉"}),(c:CAR{name:"智己"})create (u)-[r:BUY{date:"20230830"}]->(c) return u,r,c
    match(u:USER{name:"安其拉"}),(c:CAR{name:"小鹏"})create (u)-[r:BUY{date:"20230720"}]->(c) return u,r,c
    match(u:USER{name:"王昭君"}),(c:CAR{name:"极氪"})create (u)-[r:BUY{date:"20230930"}]->(c) return u,r,c
    match(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命令增删改查演示内容,感谢阅读,祝君暴富!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大数据-玩转数据-Redis 安装与使用

一、说明 大多数企业都是基于Linux服务器来部署项目&#xff0c;而且Redis官方也没有提供Windows版本的安装包。因此课程中我们会基于Linux系统来安装Redis. 此处选择的Linux版本为CentOS 7. Redis的官方网站地址&#xff1a;http://download.redis.io/releases 二、下载 m…

冶金作业VR虚拟仿真厂家

对于高风险行业来说&#xff0c;开展安全教育培训是企业的重点工作&#xff0c;传统培训逐渐跟不上时代变化和工人需求&#xff0c;冶金安全VR模拟仿真培训系统作为一种新型的教育和培训工具&#xff0c;借助VR虚拟现实技术为冶金行业的工人提供一个安全、高效的培训环境。 冶金…

(文章复现)基于灰狼算法(GWO)的交直流混合微网经济调度matlab代码

参考文献&#xff1a; [1]高瑜,黄森,陈刘鑫等.基于改进灰狼算法的并网交流微电网经济优化调度[J].科学技术与工程, 2020,20(28):11605-11611. [2]邓长征,冯朕,邱立等.基于混沌灰狼算法的交直流混合微网经济调度[J].电测与仪表, 2020, 57(04):99-107. 这两篇文章不管是从模型、…

JUL 日志 - 最简单易用的Java日志框架

在正式的生产环境下是不能使用 System.out 进行日志记录的 因为 System.out 不能提供时间、线程、执行过程 等信息&#xff0c;如果要手动打印输出则会非常麻烦 而日志就帮我们把这些事给干了 接下来我们学一个最简单的日志框架 JUL JUL全称Java util Logging是java原生的日志框…

Centos7.9安装lrzsz进行文件传输---Linux工作笔记059

这里咱们lrzsz命令,需要用来进行文件传输,因为如果不安装这个命令的话,那么 传输安装包什么的就不方便因为只有少数传输工具,才支持,直接拖拽的.没有的时候就可以用这个工具,用命令来传输 直接就是: sz 文件名 就可以把文件下载下来 rz 选择一个文件, 就可以把文件上传到当…

nacos升级开启鉴权后,微服务无法连接的解决方案

版本&#xff1a; 软件版本号备注spring boot2.2.5.RELEASEspring-cloudHoxton.SR3spring-cloud-alibaba2.2.1.RELEASEnacos2.0.1从1.4.2版本进行升级。同时作为注册中心和配置中心 一、升级nacos版本&#xff0c;开启鉴权 1.在application.properties配置文件开启鉴权&…

LeetCode 34题:在排序数组中查找元素的第一个和最后一个位置

目录 题目 思路 代码 C语言 Python 题目 给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(…

腾讯出品Pag动画框架在Android端的使用-初级

Pag动画框架作为一个第三方框架&#xff0c;它的优缺点与Lottie是相似&#xff0c;此处不过多赘述。如果你们的项目中打算用了&#xff0c;肯定是经过了一定的调研的。Pag动画框架分几个版本&#xff0c;有免费的有收费的。我们目前用的社区免费版&#xff0c;只用来展示Pag动画…

大数据面试题:说下Spark中的Transform和Action,为什么Spark要把操作分为Transform和Action?

面试题来源&#xff1a; 《大数据面试题 V4.0》 大数据面试题V3.0&#xff0c;523道题&#xff0c;679页&#xff0c;46w字 可回答&#xff1a;Spark常见的算子介绍一下 参考答案&#xff1a; 我们先来看下Spark算子的作用&#xff1a; 下图描述了Spark在运行转换中通过算…

uniapp的UI框架组件库——uView

在写uniapp项目时候&#xff0c;官方所推荐的样式库并不能满足日常的需求&#xff0c;也不可能自己去写相应的样式&#xff0c;费时又费力&#xff0c;所以我们一般会去使用第三方的组件库UI&#xff0c;就像vue里我们所熟悉的elementUI组件库一样的道理&#xff0c;在uniapp中…

(6)所有角色数据分析-6

http://t.csdn.cn/KrurEhttp://t.csdn.cn/KrurE &#xff08;5&#xff09;中的页面&#xff0c;倾向于向用户展示所有数据&#xff0c;但却没有对数据进行比较、分析&#xff0c;用户不能直观的感受到各种数据之间的关系与变化幅度&#xff0c;所以&#xff0c;下面将向用户提…

TCPDF生成PDF文件,含jpjraph生成雷达图

TCPDF生成PDF文件&#xff0c;含jpjraph生成雷达图 依赖自行安装 "tecnickcom/tcpdf": "^6.6","amenadiel/jpgraph": "4"雷达图生成 中文字体添加安装 没有封装&#xff0c;只作为测试案例展示 // 创建新的PDF文档$pdf new \TCPD…

中心极限定理例题

关于大数定律的两个题目。 例1 注意牢记公式&#xff1a; P { X } P { ∑ i 1 n x i − n μ n σ < x } ∫ − ∞ x e − x 2 2 d x 2 π P\{ X\} P \{\frac { \sum_{i1}^{n} x_i - n \mu}{\sqrt {n} \sigma} < x \} \frac {\int _{-\infty} ^{x} e ^{- \frac {x^…

18.3.0:Dynamic Web TWAIN Crack Web 文档扫描 SDK

Dynamic Web TWAIN用于快速部署 Web 应用程序的文档扫描 SDK&#xff0c;文档扫描SDK&#xff0c;&#xff0c;超过 5300 家公司信任 Dynamic Web TWAIN &#xff0c;因其稳健性和安全性而受到超过 5300 家公司的信赖&#xff0c;Dynamic Web TWAIN 是一款基于浏览器的文档扫描…

项目架构简介

目录 1 单体应用架构 2 垂直应用架构 3 分布式架构 3.1 RPC 3.2 SOA 4 微服务架构 本文介绍后台应用的各种架构,以及各架构的优缺点对比 1 单体应用架构 将所有的代码功能都写在一个项目中(例如:MVC结构,SSM框架),同时打包,同时部署 优点:便于管理,减少开发、维护、运维成…

Git全栈体系(六)

第十章 自建代码托管平台-GitLab 一、GitLab 简介 GitLab 是由 GitLabInc.开发&#xff0c;使用 MIT 许可证的基于网络的 Git 仓库管理工具&#xff0c;且具有 wiki 和 issue 跟踪功能。使用 Git 作为代码管理工具&#xff0c;并在此基础上搭建起来的 web 服务。GitLab 由乌克…

类与对象(加深)

目录 1.类的6个默认成员函数 2. 构造函数 2.1 概念 2.2 特性 3.析构函数 3.1 概念 3.2 特性 4. 拷贝构造函数 4.1 概念 4.2 特征 5.赋值运算符重载 5.1 运算符重载 5.2 赋值运算符重载 6.const成员 7.取地址及const取地址操作符重载 1.类的6个默认成员函数 如果…

01 - 工作区、暂存区、版本库、远程仓库 - 以一次连贯的提交操作为例

1. 工作区、暂存区、版本库、远程仓库 以一次连贯的提交操作为例。 1.1 工作区 Git的工作区也就是我们平时编辑代码的目录文件夹。 新建一个kongfu_person.txt文件&#xff0c;工作区的变化&#xff1a; 1.2 工作区 > 暂存区&#xff1a;git add 1.3 暂存区 > 版本库…

【踩坑】最新亲测能用!修复MacOS安装软件时提示“应该移到废纸篓”并且无法打开软件

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 目录 网上方法的尝试 方法一&#xff1a;xattr 方法二&#xff1a;UPX 真的能用的方法 GateKeeper_Helper.command的内容 网上方法的尝试 方法一&#xff1a;xattr 以前的Mac版本可以通过以下方式来解开限…