Neo4j之Cypher:Cypher查询语言的简介、语法、使用案例之详细攻略
Neo4j之Cypher:Cypher查询语言的简介、语法、使用案例之详细攻略
目录
Cypher查询语言的简介
cypher是数据库用语,不用编写复杂的查询代码即可实现对图数据库的操作。Cypher是一种声明性的图查询语言,允许对图进行高效的查询、更新和管理。它的设计适合开发人员和操作专业人员。Cypher的设计简单,但功能强大;高度复杂的数据库查询可以很容易地表示,使您能够专注于您的领域,而不是迷失在数据库访问中。
Cypher受到许多不同方法的启发,并建立在已建立的表达查询实践的基础上。许多关键字,如WHERE和ORDER BY,都受到SQL的启发。模式匹配借用SPARQL的表达式方法。一些列表语义是从Haskell和Python等语言中借来的。Cypher的结构基于英文散文和简洁的图标,使查询变得容易,无论是写还是读。
Cypher 查询针对 Neo4j 数据库执行,但通常适用于特定图形。重要的是要理解这些术语的含义,以及究竟什么时候图形不是数据库。
官方文档:Introduction - Cypher Manual
Cypher查询语言的语法
1、基础语法
neo4j内要使用操作图数据库的语言,即Cypher查询语言,如下所示
查询数据库中的所有节点,即查询数据库里的数据
# match是匹配规则,(n)表示所有节点,语法要求加上小括号
match(n) return n
增加
创建一个节点
# p1是变量名,Person是节点名,{}内包含了节点的两个属性
CREATE (p1:Person { name: "Tom", age: 20})
为节点增加属性
create(p1:Person{name:"Tom"})
match(p1) set p1.age = 20
创建两个节点并建立关系
# 创建了两个节点,并且Tom知道Bob,但Bob不知道Tom
create
(p1:Person{name:"Tom", age:20}),
(p2:Person{name:"Bob", age:22}),
(p1)-[:KNOWS]->(p2)
删除
删除单节点并再次查询
match(p1:Person) detach delete p1
match(n) return n
match (a:Person {city:'shanghai'}) delete a
# 删除标签类型为Person,city属性为shanghai的节点
删除所有内容
match (n) detach delete n
改
修改节点属性
match(p1) set p1.age = 33
查
查询所有对外有关系的节点
match (a)-->() return a
查询所有有关系的节点
match (a)--() return a
查询所有对外有关系的节点,以及关系类型
match (a)-[r]->() return a.name, type(r)
查询所有具有某种关系的节点
match (n)-[:relation]-() return n
match (n)-[:married]-() return n //表示的是查询所有有结婚关系的节点
查询这两个节点及关系
创建两个节点并建立关系
# 创建了两个节点,并且Tom知道Bob,但Bob不知道Tom
create
(p1:Person{name:"Tom", age:20}),
(p2:Person{name:"Bob", age:22}),
(p1)-[:KNOWS]->(p2)
MATCH (p1: Person)-[KNOWS]-(p2: Person) return p1,KNOWS,p2
Cypher查询语言的使用案例
1、基础案例
CREATE (john:Person {name: 'John'})
CREATE (joe:Person {name: 'Joe'})
CREATE (steve:Person {name: 'Steve'})
CREATE (sara:Person {name: 'Sara'})
CREATE (maria:Person {name: 'Maria'})
CREATE (john)-[:FRIEND]->(joe)-[:FRIEND]->(steve)
CREATE (john)-[:FRIEND]->(sara)-[:FRIEND]->(maria)
相关文章
- Spring学习笔记(六)——SpringMVC 概述和入门案例
- 双碳案例分享:腾讯区块链助力打造深圳碳普惠平台——腾讯科技(深圳)有限公司
- Scrapy爬虫框架,入门案例(非常详细)「建议收藏」
- JavaScript案例:简单留言发布
- C sharp (#) 数据类型获取方式的案例分享
- C# WinForm实现自动更新程序的案例分享
- Echarts5.3.2可视化案例-交互篇
- 网络骗局丨典型案例分析,大家一起来避雷!
- Django自动化测试平台项目案例
- 【愚公系列】2023年02月 .NET CORE工具案例-ToolGood.Words敏感词过滤
- 不背锅运维:享一个具有高可用性和可伸缩性的ELK架构实战案例
- 「SAP ABAP」你真的了解OPEN SQL的DML语句吗 (附超详细案例讲解)
- 系统实现考勤管理的oracle项目案例考勤系统(oracle项目案例考勤)
- 拓展业务视野:Oracle开发成功案例分享(oracle开发案例)
- 使用C语言连接Oracle数据库一个实践案例(c语言对接oracle)
- 利用Oracle VM解决低耗能系统问题的案例分享(oracle vm案例)
- 学习 Oracle SQL实战案例分享(oracle sql案例)
- PHP中使用sleep造成mysql读取失败的案例和解决方法