【Neo4j02】CQL命令_关系基础

关系基础

Neo4j图数据库遵循属性图模型来存储和管理其数据。

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

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

1.单向关系 2.双向关系

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

1.在两个现有节点之间创建无属性的关系

2.在两个现有节点之间创建与属性的关系

3.在两个新节点之间创建无属性的关系

4.在两个新节点之间创建与属性的关系

5.在具有WHERE子句的两个退出节点之间创建/不使用属性的关系

如图在Customer和CreditCard的关系中:
在这里插入图片描述

Customer是从节点(From Node),CreditCard是到节点(To Node)。

对于Customer,Relationship是外向关系;对于CreditCard,Relationship是到达关系。

而对于一个双向关系,等同于在Customer和Creditcard节点之间创建了两个关系:
在这里插入图片描述

对现有节点创建没有属性的关系

语法

MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>)
CREATE  
	(<node1-label-name>)-[<relationship-label-name>:<relationship-name>]->(<node2-label-name>)
RETURN <relationship-label-name>

在此语法中,RETURN子句是可选的,当想要立即看到结果,可以使用他。

例如我们创建标签名为XuHuan的x节点,和标签名为FengWeiheng的f节点:
在这里插入图片描述
在这里插入图片描述
通过以下命令创建x节点和f节点之间的关系IS_HIS_FATHER:
在这里插入图片描述
Graph形式下关系如下,可以通过单击节点和关系查看他们的属性。
在这里插入图片描述

对现有节点创建有属性的关系

语法

MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>)
CREATE  
	(<node1-label-name>)-[<relationship-label-name>:<relationship-name>
	{<define-properties-list>}]->(<node2-label-name>)
RETURN <relationship-label-name>

例如我们对现有的标签名为FengWeiheng的节点f和标签名为ZangRuiqing的节点f创建关系IS_HIS_SISTER:
在这里插入图片描述
Graph形式下关系如下,可以点击关系查看关系的属性。
在这里插入图片描述

对新节点创建无属性关系

语法

CREATE  
   (<node1-label-name>:<node1-name>)-
   [<relationship-label-name>:<relationship-name>]->
   (<node1-label-name>:<node1-name>)
RETURN <relationship-label-name>

例如我们创建标签名为ZhengJuntai的节点j和标签名为HeShi的节点h创建关系IS_HIS_PET:
在这里插入图片描述
Graph形式下关系如下:
在这里插入图片描述

对新节点和现有节点创建有属性的关系

对标签名为XiaoBowen的新节点和现有节点标签名为x的XuHuan创建有属性的关系IS_HIS_GRANDSON:
在这里插入图片描述
经过一番折腾,博主终于将他和他的朋友们的家谱创建好啦!
在这里插入图片描述

检索关系节点的详细信息

语法

MATCH 
(<node1-label-name>)-[<relationship-label-name>:<relationship-name>]->(<node2-label-name>)
RETURN <relationship-label-name>

例如我们检索关系为IS_HIS_GRANDSON的两个节点,并返回他们:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/cs_xuhuan/article/details/82954236