当前位置: 首页 > wzjs >正文

企业站官方网站免费手机建网站平台

企业站官方网站,免费手机建网站平台,物流公司怎么做网站,海外网络推广公司Neo4j 综合练习作业 作业说明 这个作业涵盖了 Neo4j 的多个重要知识点,包括节点和关系的创建、查询、更新、删除以及高级查询功能。请使用 Cypher 语句完成以下所有题目。 数据准备 首先执行以下语句创建示例数据: ACTED_IN: 表示出演关系 DIRECTED: 表示…

Neo4j 综合练习作业

作业说明

这个作业涵盖了 Neo4j 的多个重要知识点,包括节点和关系的创建、查询、更新、删除以及高级查询功能。请使用 Cypher 语句完成以下所有题目。

数据准备

首先执行以下语句创建示例数据:
ACTED_IN: 表示出演关系
DIRECTED: 表示导演关系
PRODUCED: 制片关系
FRIENDS_WITH: 朋友关系

// 创建人物节点
CREATE 
(keanu:Person {name: 'Keanu Reeves', born: 1964, nationality: 'Canadian'}),
(laurence:Person {name: 'Laurence Fishburne', born: 1961, nationality: 'American'}),
(carrie:Person {name: 'Carrie-Anne Moss', born: 1967, nationality: 'Canadian'}),
(lana:Person {name: 'Lana Wachowski', born: 1965, nationality: 'American'}),
(lilly:Person {name: 'Lilly Wachowski', born: 1967, nationality: 'American'}),
(joel:Person {name: 'Joel Silver', born: 1952, nationality: 'American'}),
(hugo:Person {name: 'Hugo Weaving', born: 1960, nationality: 'Australian'}),
(emil:Person {name: 'Emil Eifrem', born: 1978, nationality: 'Swedish'}),// 创建电影节点
(matrix:Movie {title: 'The Matrix', released: 1999, tagline: 'Welcome to the Real World'}),
(matrix2:Movie {title: 'The Matrix Reloaded', released: 2003, tagline: 'Free your mind'}),
(matrix3:Movie {title: 'The Matrix Revolutions', released: 2003, tagline: 'Everything that has a beginning has an end'}),
(devils:Movie {title: 'The Devils Advocate', released: 1997, tagline: 'Evil has its winning ways'}),
(few:Movie {title: 'A Few Good Men', released: 1992, tagline: 'In the heart of the nation\'s capital, in a courthouse of the U.S. government, one man will stop at nothing to keep his honor, and one will stop at nothing to find the truth.'}),// 创建关系
(keanu)-[:ACTED_IN {roles: ['Neo']}]->(matrix),
(keanu)-[:ACTED_IN {roles: ['Neo']}]->(matrix2),
(keanu)-[:ACTED_IN {roles: ['Neo']}]->(matrix3),
(keanu)-[:ACTED_IN {roles: ['Kevin Lomax']}]->(devils),
(laurence)-[:ACTED_IN {roles: ['Morpheus']}]->(matrix),
(laurence)-[:ACTED_IN {roles: ['Morpheus']}]->(matrix2),
(laurence)-[:ACTED_IN {roles: ['Morpheus']}]->(matrix3),
(carrie)-[:ACTED_IN {roles: ['Trinity']}]->(matrix),
(carrie)-[:ACTED_IN {roles: ['Trinity']}]->(matrix2),
(carrie)-[:ACTED_IN {roles: ['Trinity']}]->(matrix3),
(hugo)-[:ACTED_IN {roles: ['Agent Smith']}]->(matrix),
(hugo)-[:ACTED_IN {roles: ['Agent Smith']}]->(matrix2),
(hugo)-[:ACTED_IN {roles: ['Agent Smith']}]->(matrix3),
(emil)-[:ACTED_IN {roles: ['Emil']}]->(matrix),
(lana)-[:DIRECTED]->(matrix),
(lana)-[:DIRECTED]->(matrix2),
(lana)-[:DIRECTED]->(matrix3),
(lilly)-[:DIRECTED]->(matrix),
(lilly)-[:DIRECTED]->(matrix2),
(lilly)-[:DIRECTED]->(matrix3),
(joel)-[:PRODUCED]->(matrix),
(joel)-[:PRODUCED]->(matrix2),
(joel)-[:PRODUCED]->(matrix3),// 创建一些朋友关系
(keanu)-[:FRIENDS_WITH]->(emil),
(keanu)-[:FRIENDS_WITH]->(carrie),
(carrie)-[:FRIENDS_WITH]->(laurence),
(emil)-[:FRIENDS_WITH]->(joel);

作业题目

基础查询

  1. 查询所有Person节点,只返回name属性
  2. 查询所有Movie节点,返回title和released属性
  3. 查询出演过"The Matrix"电影的所有演员的姓名
  4. 查询Keanu Reeves出演过的所有电影的标题

条件查询

  1. 查询1990年到2000年之间发布的电影
  2. 查询国籍不是"American"的演员
  3. 查询出演过至少2部电影的演员
  4. 查询既出演过电影又担任过导演的人

关系查询

  1. 查询Keanu Reeves的朋友(直接朋友,不包括朋友的朋友)
  2. 查询与Keanu Reeves有2跳关系的所有人(朋友的朋友)
  3. 查询与"The Matrix"电影相关的所有人(包括演员、导演、制片人)
  4. 查询共同出演过电影的演员对

聚合与排序

  1. 统计每部电影的演员数量,并按数量降序排列
  2. 查询每个演员出演的电影数量,并按数量降序排列
  3. 查询最年轻的5位演员

更新操作

  1. 为Keanu Reeves添加一个新的属性"gender",值为"male"
  2. 将"The Matrix"电影的tagline更新为"The one that started it all"
  3. 删除Emil Eifrem和Joel Silver之间的朋友关系
  4. 为电影"A Few Good Men"添加一个导演节点Rob Reiner(生于1947年,国籍American),并建立导演关系

路径查询

  1. 查找Keanu Reeves到Hugo Weaving的最短路径(任何关系都可以)

高级查询

  1. 使用OPTIONAL MATCH查询所有电影及其导演(如果有的话)
  2. 使用UNION查询所有加拿大籍的演员和美国籍的导演
  3. 使用CASE表达式为演员分类:出生在1960年前的为"Senior",1960-1970年的为"Middle-aged",1970年后的为"Young"
  4. 使用WITH和LIMIT查询出演电影最多的前3位演员

索引与约束

  1. 为Person节点的name属性创建唯一约束
  2. 为Movie节点的title属性创建索引

删除操作

  1. 删除电影"A Few Good Men"及其所有关系
  2. 删除所有没有出演任何电影的人员

作业答案

// 1. 查询所有Person节点,只返回name属性
MATCH (p:Person) RETURN p.name;// 2. 查询所有Movie节点,返回title和released属性
MATCH (m:Movie) RETURN m.title, m.released;// 3. 查询出演过"The Matrix"电影的所有演员的姓名
MATCH (p:Person)-[:ACTED_IN]->(m:Movie {title: 'The Matrix'}) RETURN p.name;// 4. 查询Keanu Reeves出演过的所有电影的标题
MATCH (p:Person {name: 'Keanu Reeves'})-[:ACTED_IN]->(m:Movie) RETURN m.title;// 5. 查询1990年到2000年之间发布的电影
MATCH (m:Movie) WHERE m.released >= 1990 AND m.released <= 2000 RETURN m;// 6. 查询国籍不是"American"的演员
MATCH (p:Person) WHERE p.nationality <> 'American' RETURN p.name;// 7. 查询出演过至少2部电影的演员
MATCH (p:Person)-[:ACTED_IN]->(m:Movie) 
WITH p, count(m) AS movieCount 
WHERE movieCount >= 2 
RETURN p.name, movieCount;// 8. 查询既出演过电影又担任过导演的人
MATCH (p:Person)-[:ACTED_IN]->(:Movie), (p)-[:DIRECTED]->(:Movie) 
RETURN DISTINCT p.name;// 9. 查询Keanu Reeves的朋友
MATCH (p:Person {name: 'Keanu Reeves'})-[:FRIENDS_WITH]->(friend) 
RETURN friend.name;// 10. 查询与Keanu Reeves有2跳关系的所有人
MATCH (p:Person {name: 'Keanu Reeves'})-[:FRIENDS_WITH*2]->(friendOfFriend) 
RETURN DISTINCT friendOfFriend.name;// 11. 查询与"The Matrix"电影相关的所有人
MATCH (p:Person)-[r]->(m:Movie {title: 'The Matrix'}) 
RETURN p.name, type(r) AS role;// 12. 查询共同出演过电影的演员对
MATCH (p1:Person)-[:ACTED_IN]->(m:Movie)<-[:ACTED_IN]-(p2:Person) 
WHERE p1 <> p2 
RETURN p1.name, p2.name, m.title;// 13. 统计每部电影的演员数量
MATCH (m:Movie)<-[:ACTED_IN]-(p:Person) 
RETURN m.title, count(p) AS actorCount 
ORDER BY actorCount DESC;// 14. 查询每个演员出演的电影数量
MATCH (p:Person)-[:ACTED_IN]->(m:Movie) 
RETURN p.name, count(m) AS movieCount 
ORDER BY movieCount DESC;// 15. 查询最年轻的5位演员
MATCH (p:Person) 
RETURN p.name, p.born 
ORDER BY p.born DESC 
LIMIT 5;// 16. 为Keanu Reeves添加gender属性
MATCH (p:Person {name: 'Keanu Reeves'}) 
SET p.gender = 'male' 
RETURN p;// 17. 更新"The Matrix"的tagline
MATCH (m:Movie {title: 'The Matrix'}) 
SET m.tagline = 'The one that started it all' 
RETURN m;// 18. 删除Emil Eifrem和Joel Silver之间的朋友关系
MATCH (e:Person {name: 'Emil Eifrem'})-[r:FRIENDS_WITH]->(j:Person {name: 'Joel Silver'}) 
DELETE r;// 19. 为"A Few Good Men"添加导演
CREATE (rob:Person {name: 'Rob Reiner', born: 1947, nationality: 'American'});
MATCH (m:Movie {title: 'A Few Good Men'}), (p:Person {name: 'Rob Reiner'}) 
CREATE (p)-[:DIRECTED]->(m);// 20. 查找Keanu Reeves到Hugo Weaving的最短路径
MATCH path = shortestPath((k:Person {name: 'Keanu Reeves'})-[*]-(h:Person {name: 'Hugo Weaving'})) 
RETURN path;// 21. 使用OPTIONAL MATCH查询所有电影及其导演
MATCH (m:Movie) 
OPTIONAL MATCH (d:Person)-[:DIRECTED]->(m) 
RETURN m.title, d.name AS director;// 22. 使用UNION查询所有加拿大籍的演员和美国籍的导演
MATCH (p:Person {nationality: 'Canadian'})-[:ACTED_IN]->(:Movie) 
RETURN p.name AS name, 'Actor' AS role
UNION
MATCH (p:Person {nationality: 'American'})-[:DIRECTED]->(:Movie) 
RETURN p.name AS name, 'Director' AS role;// 23. 使用CASE表达式为演员分类
MATCH (p:Person) 
RETURN p.name, 
CASE WHEN p.born < 1960 THEN 'Senior'WHEN p.born >= 1960 AND p.born < 1970 THEN 'Middle-aged'ELSE 'Young'
END AS ageGroup;// 24. 使用WITH和LIMIT查询出演电影最多的前3位演员
MATCH (p:Person)-[:ACTED_IN]->(m:Movie) 
WITH p, count(m) AS movieCount 
ORDER BY movieCount DESC 
LIMIT 3 
RETURN p.name, movieCount;// 25. 为Person节点的name属性创建唯一约束
CREATE CONSTRAINT unique_person_name FOR (p:Person) REQUIRE p.name IS UNIQUE;// 26. 为Movie节点的title属性创建索引
CREATE INDEX movie_title_index FOR (m:Movie) ON (m.title);// 27. 删除电影"A Few Good Men"及其所有关系
MATCH (m:Movie {title: 'A Few Good Men'}) 
DETACH DELETE m;// 28. 删除所有没有出演任何电影的人员
MATCH (p:Person) 
WHERE NOT (p)-[:ACTED_IN]->() 
DELETE p;

这个作业涵盖了 Neo4j 和 Cypher 的大部分核心功能,包括 CRUD 操作、各种查询模式、路径查找、聚合函数、索引和约束等。完成这个作业后,你应该对 Neo4j 的使用有了全面的了解。

http://www.dtcms.com/wzjs/813810.html

相关文章:

  • 企业电商网站备案流程wordpress公共函数在哪里
  • seo查询爱站网络规划设计师论文背别人的行么
  • 怎样创建个人的网站网站商城运营成本
  • 网站开发设计的难点海报设计大赛
  • 如何建个使用自己帐户的网站有没有那种帮人做ppt的网站
  • 网站的站外优化人寿保险网站
  • 建设银行的网站是多少钱郑州网站建设小程序
  • 学院网站信息化建设总结学校网站设计
  • 网站商城app 建设方案android显示wordpress
  • 三大门户网站安徽建站优化
  • 怎样拓展客户seo排名点击首页
  • 三合一网站开发教程网站建设最关键的两个素材
  • 什么网站做新闻更好phpcms 后台修改修改网站备案号
  • 圣辉友联网站建设wordpress论坛插件
  • 泰安住房和城乡建设厅网站wordpress固定连接文件
  • 免费 微网站免费做网站txt外链
  • 微网站访问量商务网站建设公司排名
  • 唐河微网站建设seo工程师招聘
  • 涉县住房与城乡建设厅网站郴州信息港
  • 金坛常州做网站网站修改
  • 下载模板后怎么建设网站精准引流获客软件
  • 企业网站报价表罗湖商城网站建设多少钱
  • 视频网站后台功能wordpress wp_parse_args()
  • 做装修网站价格马大姐网站建设目的
  • 网站宣传平台开淘宝的店铺网站怎么做
  • 玉田建设局网站河源市连平县建设局网站
  • 建设网站商城需要多少费用网站建设与维护教学课件
  • 网站商务方案松花江避暑城建设网站
  • 荧光字体制作网站网站建设方案打包
  • 网站页脚模板淘宝关键词优化