Neo4j cypher语言查询练习

本文介绍了使用Neo4j图数据库查询imdb电影数据集的多个问题,涉及导演、演员、电影类型等多个方面,包括查询导演作品数量、演员性别比例、电影年份、合作演员等复杂问题,通过Cypher语言进行解答。

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

Neo4j是一种图数据库,在查询时用到的语言也跟SQL不一样,下面就是一些我遇到的一些比较好的例题,我会分享我的代码和解答方式。
这些问题都是基于imdb电影数据集,并且每道题都有很多种查询思路,因此也有很多种查询代码,我只分享我的思路。

注:我的数据库关系图:
在这里插入图片描述
1. 构建数据库中所有文件的关系图:
解答:分两段进行,第一段先用create()函数来创建实体与实体件的联系,然后第二段用match()来运行。

create (a:imdb {name:“Movies”})
create (b:imdb {name:“Actors”})
create (c:imdb {name:“Directors”})
create (d:imdb {name:“Writers”})
create (e:imdb {name:“MoviesToActors”})
create (f:imdb {name:“MoviesToDirectors”})
create (g:imdb {name:“MoviesToWriters”})
create (h:imdb {name:“RunningTimes”})
create (i:imdb {name:“Rating”})
create (b)-[:Acted_In]->(e)
create ©-[:Directed]->(f)
create (d)-[:Wrote]->(g)
create (a)-[:Have]->(e)
create (a)-[:Have]->(f)
create (a)-[:Have]->(g)
create (a)-[:Run_In]->(h)
create (a)-[:Rated_In]->(i)

MATCH (N:imdb) RETURN N
在这里插入图片描述

2. 罗恩·霍华德(Ron Howard)执导了多少部电影?
解答:本题比较简单,只需在match电影与导演后,输入导演的名字即可。

MATCH(M:Movie)-[DIRECTED_BY]->(D:Director)
WHERE D.name CONTAINS ‘Howard, Ron’
RETURN count(DISTINCT M)as Ron_Howard_Films

在这里插入图片描述
3. 查询数据集中女性演员的人数和男性演员的人数。
解答:我们可以设两个类:maleNum和femaleNum,再用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值