【图数据库系列】Cypher查询语句:常用语法指南

devtools/2024/9/23 23:25:02/

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 简介
    • 基本语法
      • 节点和关系
      • 查询
      • 聚合函数
    • 高级查询
      • 子查询
      • 模式匹配
      • 变量长度关系
      • 合并操作
      • 删除操作
      • 更新操作
    • 索引和约束
    • 总结

简介

在图形数据库的世界中,Neo4j 以其强大的图形数据处理能力而闻名。而 Cypher,作为 Neo4j 的查询语言,提供了一种简洁且易于理解的方式来操作图形数据。Cypher 的语法类似于自然语言,使得即使是初学者也能快速上手。
在这里插入图片描述

基本语法

节点和关系

在 Cypher 中,图形由节点(Node)和关系(Relationship)组成。每个节点代表一个实体,而关系则表示实体间的连接。节点和关系通过标签(Label)和类型(Type)来标识。

  • 创建节点:使用CREATE关键字可以创建节点。

     CREATE (n:Person {name: 'Alice'})
    
  • 创建关系:创建节点后,可以使用-[:TYPE]->来定义节点间的关系。

    MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'})
    CREATE (a)-[:KNOWS]->(b)
    

查询

  • MATCH:用于匹配图形中的模式。

    MATCH (n:Person) WHERE n.name = 'Alice' RETURN n
    
  • RETURN:指定查询结果中需要返回的字段。

    MATCH (n:Person) RETURN n.name
    
  • WHERE:用于过滤结果。

    MATCH (n:Person) WHERE n.age > 30 RETURN n
    

聚合函数

Cypher 提供了多种聚合函数,如COUNT(), SUM(), AVG(), MIN(), MAX()等,用于对查询结果进行统计。

MATCH (n:Person)
RETURN COUNT(n) AS totalPeople

高级查询

子查询

Cypher 支持子查询,允许在一个查询中嵌套另一个查询。

MATCH (n:Person)
WITH n
MATCH (n)-[:KNOWS]->(friends)
RETURN n.name, COUNT(friends) AS friendsCount

模式匹配

Cypher 允许用户定义复杂的模式来匹配图形中的结构。

MATCH path = (:Person)-[:KNOWS*2]->(:Person)
WHERE ALL(x IN NODES(path) WHERE x.age > 20)
RETURN path

变量长度关系

使用*可以指定关系的长度,如KNOWS*2表示匹配长度为 2 的关系。

合并操作

  • MERGE:用于创建新节点或关系,如果已存在则不重复创建。
    MERGE (a:Person {name: 'Alice'})-[:KNOWS]->(b:Person {name: 'Bob'})
    

删除操作

  • DELETE:用于删除节点或关系。
    MATCH (n:Person {name: 'Alice'})-[r:KNOWS]->()
    DELETE r
    

更新操作

  • SET:用于更新节点或关系的属性。
    MATCH (n:Person {name: 'Alice'})
    SET n.age = 35
    

索引和约束

为了提高查询效率,可以在节点的属性上创建索引。

CREATE INDEX ON :Person(name)

在这里插入图片描述

总结

Cypher 查询语言以其简洁性和表达力,为图形数据库的操作提供了强大的支持。通过本篇文章,我们介绍了 Cypher 的基本语法,包括节点和关系的创建、查询、聚合函数的使用、子查询、模式匹配、变量长度关系、合并、删除和更新操作,以及索引和约束的创建。掌握这些基础和高级特性,将帮助你更有效地与 Neo4j 图数据库进行交互。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img


http://www.ppmy.cn/devtools/96062.html

相关文章

Linux - 常用基础指令和命令

文章目录 1、ifconfig指令2、ssh指令3、ls指令4、pwd命令5、cd 指令6、stat命令7、 touch指令8、mkdir指令9、rmdir指令10、rm指令11、man指令12、cp指令13、mv指令14、cat指令15、more指令16、less指令17、head指令18、tail指令19、时间相关的指令20、cal指令21、find指令22、…

spring框架中Spring Validation的注解校验

在进行业务分析时发现当前业务所有的属性都应当有值,因此在设置数据库中的表结构时,也设置了所有属性都是必填。属性又比较多,如果通过一个个的if判断会显得代码比较多,因此考虑到使用注解进行校验属性是否为空。 常见属性上的校验…

Java预约家政上门服务本地服务系统小程序源码

🌟【轻松生活,从一键预约家政开始!】🌟 🏠 告别繁琐,拥抱便捷新生活 在这个快节奏的都市生活中,忙碌的你是不是经常为家里的琐事烦恼?打扫、整理、甚至是专业家电维修,…

【屏驱MCU】系列文章合集

屏驱MCU系列文章 【屏显MCU】多媒体接口总结(一) 【DVP接口】0v5640的DVP接口设计分析(硬件) 【DVP接口】0v5640的DVP接口设计分析(软件) 【屏驱MCU】RT-Thread文件系统接口解析 【RT-Thread】串口接收…

视频教程:自研低代码拖拽图形编辑器底层库moveable示例学习

视频地址:自研低代码拖拽图形编辑器底层库moveable示例学习

Elasticsearch 中的复合查询

Elasticsearch 是一种广泛应用的分布式搜索引擎,支持复杂的查询条件以满足不同场景下的搜索需求。其强大的查询 DSL(Domain Specific Language)允许开发者组合多个查询条件,以实现精准的搜索结果。本文将深入探讨 Elasticsearch 中…

改善工作流

快捷键管理器 打开Editor->Shortcuts查看和编辑Unity中的快捷键 示例 ShiftSpace 窗口最大化 P 选择预制体 进入预制体编辑模式 单一检视窗口 选择组件,选择Properties打开一个窗口,显示组件信息;切换对象,窗口信息不会改变…

08 STM32 DMA

DMA 协助CPU,完成数据转运工作。 两个程序: DMA数据转运,DMAAD多通道 DMA数据转运,将使用DMA,进行存储器到存储器的数据转运,也就是把一个数组里面的数据,复制到另一个数组里。 定义一个数组D…