Cypher图形查询语言详解:从基础到高级
需积分: 0 9 浏览量
更新于2024-07-20
收藏 660KB PDF 举报
"Cypher是Neo4j图形数据库系统中的一种声明式图形查询语言,专为简化图形数据的查询和操作而设计。它以其易读性强、表达力高的特点,适用于开发者和数据分析师进行快速的点对点查询。Cypher的设计灵感来源于多种编程语言和查询语言,例如SQL的关键字、SPARQL的模式匹配以及Scala的正则表达式匹配。它关注查询结果的获取,而非执行细节,从而允许数据库管理系统在后台优化查询过程。
在Cypher中,主要由以下几个关键部分构成:
1. **START**:定义查询的起点,可以是图中的特定节点或通过索引来寻找。
2. **MATCH**:指定图形匹配模式,用于连接起始点与其他节点或关系。
3. **WHERE**:提供过滤条件,筛选满足特定要求的节点或关系。
4. **RETURN**:指定查询结果中需要返回的元素。
例如,以下是一个查询示例:
```
START john=node:node_auto_index(name='John')
MATCH john-[:friend]->()-[:friend]->fof
RETURN john, fof
```
此查询将找到与名为John的节点通过两次`friend`关系相连的所有其他节点(即John的朋友的朋友),并返回这些节点。
接下来,可以添加过滤条件来进一步细化查询:
```
START user=node(5,4,1,2,3)
MATCH user-[:friend]->follower
WHERE follower.name=~/S./*
RETURN user, follower.name
```
这个查询会列出用户ID为5, 4, 1, 2, 3的节点,查找他们通过`friend`关系连接的其他节点,其中`follower`的`name`属性以字母"S"开头,并返回这些用户及其朋友的`name`。
在Cypher中,还存在多种操作符,包括:
- **数学操作符**:+,-,*,/ 和 %。其中,"+"可用于字符串拼接。
- **相等操作符**:=,<>,<,>,<=,>=。
- **关系操作符**:用于比较关系的方向和类型。
由于Neo4j是一个模式稀疏的数据库,Cypher特别适合处理非结构化和半结构化的数据。随着Cypher的发展,其语法可能会有所变化,但其核心目标一直是提供一个人性化的图形查询工具,使用户能够高效地探索和操作复杂的数据网络。"
2020-03-10 上传
2020-09-04 上传
2018-12-02 上传
2021-08-10 上传
2020-01-11 上传
2023-08-12 上传
2017-12-19 上传
cc_suuif
- 粉丝: 4
- 资源: 9
最新资源
- ES管理利器:ES Head工具详解
- Layui前端UI框架压缩包:轻量级的Web界面构建利器
- WPF 字体布局问题解决方法与应用案例
- 响应式网页布局教程:CSS实现全平台适配
- Windows平台Elasticsearch 8.10.2版发布
- ICEY开源小程序:定时显示极限值提醒
- MATLAB条形图绘制指南:从入门到进阶技巧全解析
- WPF实现任务管理器进程分组逻辑教程解析
- C#编程实现显卡硬件信息的获取方法
- 前端世界核心-HTML+CSS+JS团队服务网页模板开发
- 精选SQL面试题大汇总
- Nacos Server 1.2.1在Linux系统的安装包介绍
- 易语言MySQL支持库3.0#0版全新升级与使用指南
- 快乐足球响应式网页模板:前端开发全技能秘籍
- OpenEuler4.19内核发布:国产操作系统的里程碑
- Boyue Zheng的LeetCode Python解答集