neo4j的CQL命令实例演示

这篇具有很好参考价值的文章主要介绍了neo4j的CQL命令实例演示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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


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


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


一、缩写

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j
为了后面的演示,我们这里多创建几个,依次执行以下命令

	//注意,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

在浏览器中输入上述命令查询所有节点
neo4j的CQL命令实例演示,DataBase,数据库,neo4j

2.2 查询指定标签的节点

语法

match(n:L)

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

match(c:CAR)return c

这里只会显示CAR标签的节点
neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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

语法

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

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

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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时返回的是一行描述信息
neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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

加上return返回的内容就是如数据了,如下
neo4j的CQL命令实例演示,DataBase,数据库,neo4j

4. 删除节点

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

match(n)return n

neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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

语法

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

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

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j
查看全部节点验证

match(n)return n

宝马已被删除
neo4j的CQL命令实例演示,DataBase,数据库,neo4j

4.2 删除指定标签节点

语法

match(n:L) delete n

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

match(c:CAR) delete c

neo4j的CQL命令实例演示,DataBase,数据库,neo4j
查看全部节点验证

match(n)return n

CAR标签的节点已全被删除
neo4j的CQL命令实例演示,DataBase,数据库,neo4j

4.3 删除全部节点

语法

match(n) delete n

neo4j的CQL命令实例演示,DataBase,数据库,neo4j

查看全部节点验证

match(n)return n

所有节点已全被删除
neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j
当然了,也可以将箭头反过来,创建关系标签为BELONG属性expire值为100

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j
为了方便后续演示,这里我们多创建几个关系

    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

只会查看所有带关系的数据,不存在关系的数据不在其中
neo4j的CQL命令实例演示,DataBase,数据库,neo4j
如果return后不加节点只有关系参数r,则返回的是json格式的数据信息

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j
或者(where子句查询)

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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
neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j

4. 删除关系

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

语法

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

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

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j
查看所有关系,看是否被删除

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

的确删除了
neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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

语法

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

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

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j
查看所有关系,看是否被删除

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

没有看到李白的节点,表示已经没有存在的关系了
neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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

语法

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

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

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j
查看所有关系,看是否被删除

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

已经没有了比亚迪节点的关系
neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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

语法

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

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

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j
查看所有关系,看是否被删除

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

安其拉已经无了
neo4j的CQL命令实例演示,DataBase,数据库,neo4j

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

语法

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

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

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

neo4j的CQL命令实例演示,DataBase,数据库,neo4j
查看所有关系,看是否被删除

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

含有关系的节点已经全部没了
neo4j的CQL命令实例演示,DataBase,数据库,neo4j

4.6 批量删除所有关系

语法

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

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

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

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


以上就是CQL命令增删改查演示内容,感谢阅读,祝君暴富!文章来源地址https://www.toymoban.com/news/detail-644584.html

到了这里,关于neo4j的CQL命令实例演示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图数据库_Neo4j学习cypher语言_使用CQL_构建明星关系图谱_导入明星数据_导入明星关系数据_创建明星关系---Neo4j图数据库工作笔记0009

    首先找到明星数据   可以看到有一个sheet1,是,记录了所有的关系的数据   然后比如我们搜索一个撒贝宁,可以看到撒贝宁的数据   然后这个是构建的CQL语句   首先我们先去启动服务 neo4j console     然后我们再来看一下以前导入的,可以看到导入很简单, 就是上面有CQL 看一下节

    2024年02月12日
    浏览(34)
  • Neo4j数据库GDS算法演示

    下载neo4j-community-4.4.16.zip和jdk11的zip包(必须是JDK11,其它版本不行) 下载GDS相应的jar包2.2.7版本 Neo4j Server和JDK安装 解压neo4j-community-4.4.16.zip到neo4j的安装目录 解压jdk11的zip包,设置JAVA_HOME(注意可能会与本机已有的JDK冲突,可以在启动neo4j后改回原JAVA_HOME设置). GDS安装 将neo4j-gra

    2024年02月08日
    浏览(29)
  • 【Neo4j】图数据库安装和演示

    环境Win10+Docker Desktop+ Neo4j 寻找容器,拉取容器,查询容器 参考说明 直接复制执行(本人使用) 原始端口在本机环境执行问题: docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:7474 - 0.0.0.0:0: listen tcp 0.0.0.0:7474: bind: An attempt was made to access a socket in a way forbidden

    2024年02月11日
    浏览(508)
  • Neo4j CQL语法

    CQL 代表密码查询语言。就像 Oracle 数据库有查询语言 SQL,Neo4j 有 CQL 作为查询语言。 创建单个节点 其中(;)是可选的。 创建多个节点 创建带标签的节点 创建具有多个标签的节点(用冒号“:”分隔) 创建具有属性的节点(在“{ }”中指定这些属性,用逗号分隔) 验证:返

    2024年02月04日
    浏览(26)
  • Neo4J CQL语句

    含义 有时,根据我们的客户端要求,我们需要向现有节点或关系添加新属性(字段)。要做到这一点,Neo4j CQL提 供了一个SET子句。 如tom的age,name,sex都为null 创建索引 删除索引 创建唯一索引 删除唯一索引 Distinct 删除标签下所有数据 如果报错如下,说明节点包含关系 删除节

    2024年01月21日
    浏览(30)
  • Neo4J 特性CQL语句,函数,Springboot集成

      随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系 网,传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系随数据量呈几何级数增长, 急需一种支持海量复杂数据关系运算的数据库,图数据库应运而生

    2024年02月12日
    浏览(36)
  • 知识图谱小白入门(1):neo4j的安装与CQL的使用

    知识图谱,是一种实体间的信息与关系知识的网状结构,借用图论中点与边的概念进行组建,易于结构化和可视化。 所以,设计者按照图论相关知识设计Neo4j,Cypher和py2neo的相关语法,均可看到C程序设计相关的身影。 neo4j的有三个版本: Server版本,试用30天,收费版本。 C

    2024年02月07日
    浏览(38)
  • 【Neo4j】SOLVED:java.lang.RuntimeException: Error starting Neo4j database server

    问题描述:Neo4j 数据库服务启动失败 java.lang.RuntimeException: Error starting Neo4j database server 问题分析:APOC插件问题 解决办法1: 关闭APOC占用程序进程( zulu platform x64 architecture ), 重启Neo4j 数据库   解决办法2:卸载APOC,重装与Neo4j 数据库对应版本 neo4j-contrib/neo4j-apoc-procedures -

    2024年02月12日
    浏览(52)
  • Neo4j:入门基础(二)~ 数据导入Neo4J RDF导入neo4j数据库

    neo4j导入数据的方式有以下几种: Cypher create 语句,为每一条数据写一个create Cypher load csv 语句,将数据转成CSV格式,通过LOAD CSV读取数据。 neo4j-admin import导入 官方提供的Java API - BatchInserter 大牛编写的 batch-import 工具 neo4j-apoc load.csv + apoc.load.relationship 针对实际业务场景,定制

    2023年04月24日
    浏览(44)
  • Neo4j | 保姆级教学之如何清空neo4j数据库

    要清空neo4j数据库,需要进行以下操作: 停止Neo4j服务器,关闭Neo4j的所有连接。 找到 Neo4j 数据库存储的目录,通常是 data/databases/ 。 删除该目录中的所有文件和子目录。 请注意,这将不可逆地删除数据库的所有内容,包括节点、关系和属性等数据。在执行这个操作之前,请

    2024年02月06日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包