经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » neo4j » 查看文章
知识图谱(Knowledge Graph)- Neo4j 5.10.0 使用 - CQL - 太极拳传承谱系表
来源:cnblogs  作者:VipSoft  时间:2023/8/18 9:29:22  对本文有异议

删除数据库中以往的图

  1. MATCH (n) DETACH DELETE n

创建节点

CREATE命令语法

Neo4j CQL“CREATE”命令用于创建没有属性的节点。 它只是创建一个没有任何数据的节点。

  1. CREATE (
  2. <node-name>:<label-name>
  3. {
  4. <Property1-name>:<Property1-Value>
  5. ........
  6. <Propertyn-name>:<Propertyn-Value>
  7. }
  8. )
语法元素 描述
<node-name> 它是我们将要创建的节点名称,创建关系时使用到,注意命名
<label-name> 它是一个节点标签名称
<Property1-name>...<Propertyn-name> 属性是键值对。 定义将分配给创建节点的属性的名称
<Property1-value>...<Propertyn-value> 属性是键值对。 定义将分配给创建节点的属性的值

1、Neo4j数据库服务器使用此将此节点详细信息存储在Database.As中作为Neo4j DBA或Developer,我们不能使用它来访问节点详细信息。

2、Neo4j数据库服务器创建一个作为内部节点名称的别名。作为Neo4j DBA或Developer,我们应该使用此标签名称来访问节点详细信息。

  1. <font color='red'>cwt:Person Person 不能重复,否则表达不出来 师徒关系 ,下周继续</font>
  2. # 注意node-name不要重复
  3. CREATE (cwt:Person { name:"陈王廷",generation:"创始人"})
  4. CREATE (jf:Person { name:"蒋发",generation:"第二代"})
  5. CREATE (sl:Person { name:"所乐",generation:"第二代"})
  6. CREATE (rx:Person { name:"汝信",generation:"第二代"})
  7. CREATE (zr:Person { name:"正如",generation:"第三代"})
  8. CREATE (xr:Person { name:"恂如",generation:"第三代"})
  9. CREATE (sr:Person { name:"申如",generation:"第三代"})
  10. CREATE (dp:Person { name:"大鹏",generation:"第三代"})
  11. CREATE (dk:Person { name:"大鹍",generation:"第三代"})
  12. CREATE (jx:Person { name:"继夏",generation:"第四代"})
  13. CREATE (jb:Person { name:"敬伯",generation:"第四代"})
  14. CREATE (jue:Person { name:"爵",generation:"第四代"})
  15. CREATE (zs:Person { name:"善志",generation:"第四代"})
  16. CREATE (st:Person { name:"善通",generation:"第四代"})
  17. CREATE (dx:Person { name:"大兴",generation:"第五代"})
  18. CREATE (yz:Person { name:"耀兆",generation:"第五代"})
  19. CREATE (gz:Person { name:"公兆",generation:"第五代"})
  20. CREATE (bw:Person { name:"秉旺",generation:"第五代"})
  21. CREATE (br:Person { name:"秉壬",generation:"第五代"})
  22. CREATE (bq:Person { name:"秉奇",generation:"第五代"})
  23. CREATE (ccx:Person { name:"陈长兴",generation:"第六代"})
  24. CREATE (yb:Person { name:"有本",generation:"第六代"})
  25. CREATE (yh:Person { name:"有恒",generation:"第六代"})
  26. CREATE (ylc:Person { name:"杨露禅",generation:"第七代"})
  27. CREATE (gy:Person { name:"耕耘",generation:"第七代"})
  28. CREATE (ybh:Person { name:"杨班候",generation:"第八代"})
  29. CREATE (yx:Person { name:"延熙",generation:"第八代"})
  30. CREATE (yn:Person { name:"延年",generation:"第八代"})
  31. CREATE (cfk:Person { name:"陈发科",generation:"第九代"})
  32. CREATE (wy:Person { name:"王雁",generation:"第九代"})
  33. CREATE (cbz:Person { name:"陈宝璩",generation:"第九代"})
  34. CREATE (wep:Person { name:"王二平",generation:"第九代"})
  35. CREATE (wfl:Person { name:"王福礼",generation:"第十代"})
  36. CREATE (zlh:Person { name:"朱老虎",generation:"第十代"})
  37. CREATE (wcj:Person { name:"王长江",generation:"第十代"})
  38. CREATE (cez:Person { name:"曹二柱",generation:"第十代"})
  39. CREATE (zl:Person { name:"朱路",generation:"第十一代"})
  40. CREATE (zf:Person { name:"朱峰",generation:"第十一代"})
  41. CREATE (zc:Person { name:"朱超",generation:"第十一代"})
  42. CREATE (zbl:Person { name:"朱堡垒",generation:"第十一代"})
  43. CREATE (zzl:Person { name:"张中林",generation:"第十一代"})

image

查询节点

MATCH命令

  1. MATCH
  2. (
  3. <node-name>:<label-name>
  4. )

注意事项

  • Neo4j 数据库服务器使用此 将此节点详细信息存储在 Database.As 中作为 Neo4j DBA 或 Developer,我们不能使用它来访问节点详细信息。
  • Neo4j 数据库服务器创建一个 作为内部节点名称的别名。作为 Neo4j DBA 或 Developer,我们应该使用此标签名称来访问节点详细信息。
  1. # 查询Dept下的内容
  2. MATCH (dept:Dept) return dept
  3. # 查询Employee标签下 id=123,name="Lokesh"的节点
  4. MATCH (p:Employee {id:123,name:"Lokesh"}) RETURN p
  5. ## 查询Employee标签下name="Lokesh"的节点,使用(where命令)
  6. MATCH (p:Employee)
  7. WHERE p.name = "Lokesh"
  8. RETURN p

MATCH & RETURN匹配和返回

  1. MATCH (n:Person {name:"陈长兴"}) RETURN n
  2. MATCH (n:Person {name:"陈长兴"}) RETURN n.generation

image
image

创建关系

根据属性图模型,关系应该是定向的。 否则,Neo4j将抛出一个错误消息。

基于方向性,Neo4j关系被分为两种主要类型。

  • 单向关系
  • 双向关系

在以下场景中,我们可以使用Neo4j CQL CREATE命令来创建两个节点之间的关系。 这些情况适用于Uni和双向关系。

  • 在两个现有节点之间创建无属性的关系
  • 在两个现有节点之间创建有属性的关系
  • 在两个新节点之间创建无属性的关系
  • 在两个新节点之间创建有属性的关系
  • 在具有WHERE子句的两个退出节点之间创建/不使用属性的关系
  1. CREATE (m:Movie:Cinema:Film:Picture)

新节点无属性关系

  1. CREATE (<node1-name>:<label1-name>)-
  2. [<relationship-name>:<relationship-label-name>]
  3. ->(<node2-name>:<label2-name>)
  4. # <node1-name> <节点1名> 它是From节点的名称。
  5. # <node2-name> <节点2名> 它是To节点的名称。
  6. # <label1-name> <LABEL1名称> 它是From节点的标签名称
  7. # <label2-name> <LABEL2名称> 它是To节点的标签名称。
  8. # <relationship-name> <关系名称> 它是一个关系的名称。
  9. # <relationship-label-name> <相关标签名称> 它是一个关系的标签名称。

image

太极拳传承谱系表

使用新节点创建关系

创建第N代传承人

  1. # 创建辈份-- 执行时要去掉注释
  2. CREATE (FirstGeneration:Hierarchy {title:'陈氏太极创始人'})
  3. # 创建关系-- 执行时要去掉注释
  4. CREATE
  5. (cwt)-[:BELONG_TO]->(FirstGeneration)
  1. # 创建辈份 -- 执行时要去掉注释
  2. CREATE (SecondGeneration:Hierarchy {title:'第二代传承人'})
  3. # 创建关系 -- 执行时要去掉注释
  4. CREATE
  5. (jf)-[:BELONG_TO]->(SecondGeneration),
  6. (sl)-[:BELONG_TO]->(SecondGeneration),
  7. (rx)-[:BELONG_TO]->(SecondGeneration)

image

创建师徒关系

cwt:Person ,Person 不能重复,否则表达不出来 师徒关系

姓:surname 或者 family name或者 last name
名:first name 或者 forename 或者 given name
字:style name,有时也作courtesy name
号:pseudonym,有时也做(hao)

人称:一般可以翻译成 nicknames
谥号:posthumous title

https://www.w3cschool.cn/neo4j/neo4j_cql_create_node.html

原文链接:https://www.cnblogs.com/vipsoft/p/17631347.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号