1. 程式人生 > >【Neo4j02】CQL命令_關係基礎

【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的兩個節點,並返回他們: 在這裡插入圖片描述