Cypher语句总结

本文详细介绍了Neo4j图数据库的各种查询操作,包括带有关系的查询、带有条件的查询、多维度关系查询,以及如何创建、删除、更新实体和关系。此外,还涵盖了查询姓名之间的最短路径及三度内关联。内容覆盖了图数据库的基本操作和优化技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查询

1、带有关系的查询

match (n:Person)-[:饰演]->(p:Movie) return n,p

在这里插入图片描述

2、带有条件的查询

match (n:Person)-[:饰演]->(p:Movie) where n.name="刘松仁" return n,p

在这里插入图片描述

3、多维度关系查询

3.1 二度查询
在这里插入图片描述在这里插入图片描述
3.2 利用关系去查询

match p=()-[c:]->() return p limit 25

在这里插入图片描述

3.3 利用正则查询

match (n:Person) where n.name=~'Jack.*' return n limit 10

在这里插入图片描述

3.4 利用包含查询

match (n:Person) where n.name contains '陈' return n limit 10

在这里插入图片描述

实体和关系

1、创建实体和关系
创建简单的实体和关系

create (n:Person)-[:LOVES]->(m:Dog)

在这里插入图片描述

创建带有属性的实体和关系

create (n:Person{name:"李四"})-[:FEAR{level:1}]->(t:Tiger{type:"东北虎"})

在这里插入图片描述

已存在两个实体,我们想让他们有关系,可以用下面的语句建立联系

match (n:Person{name:"王五"}),(m:Person{name:"赵柳"}) create(n)-[k:KNOW]->(m) return k

在这里插入图片描述
在这里插入图片描述
若想要两个实体间存在多种关系,用下面的语句在原来关系的基础上,添加关系

match (n:Person{name:"王五"}),(m:Person{name:"赵柳"}) merge(n)-[l:LOVE]->(m) return l

在这里插入图片描述
merge有则返回,没有则创建;而create只有创建

删除

你可以使用 DETACH DELETE 并删除整个数据库。
继续来执行下边的语句:

MATCH (n) DETACH DELETE n

2、同时删除实体和关系

match (n:Person)-[f:FEAR]->(t:Tiger) delete n,f,t

下面这两个关系就被删除了
在这里插入图片描述
在这里插入图片描述

更新

1、给关系添加属性

match (n:Person)-[l:LOVE]->(p:Person) set l.date="1998" return n,l,p

在这里插入图片描述
2、索引能够提高查询速度
2.1 创建索引

create index on :Person(name)

2.2 删除索引

drop index on :Person(name)

2.3 给某一个属性创建唯一的一个约束
比如,仍然给person 的name创建一个唯一的约束

create constraint on (p:Person) assert (p.name) is unique

3、 查询姓名12他的三度内的朋友有哪些
在这里插入图片描述
在这里插入图片描述4、跟姓名12有关系的,只要三度内能关联的上,就显示。
在这里插入图片描述在这里插入图片描述
5、姓名11的通话记录中的电话有哪些
在这里插入图片描述

在这里插入图片描述

最短路径的查询

姓名2到姓名10的最短路径查询
在这里插入图片描述
在这里插入图片描述
姓名2到姓名10的所有的最短路径查询
在这里插入图片描述在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值