學習neo4j--第五章 CQL簡介-WHERE子句

像SQL一樣,Neo4j CQL在CQL MATCH命令中提供了WHERE子句來過濾MATCH查詢的結果。

簡單WHERE子句語法

WHERE <condition>

複雜WHERE子句語法

WHERE <condition> <boolean-operator> <condition>

我們可以使用布爾運算符在同一命令上放置多個條件。 請參考下一節,瞭解Neo4j CQL中可用的布爾運算符。

<condition>語法:

<property-name> <comparison-operator> <value>

語法說明:

S.No. 語法元素 描述
1 WHERE 它是一個Neo4j CQL關鍵字。
2 <property-name><屬性名稱> 它是節點或關係的屬性名稱。
3 <comparison-operator><比較運算符> 它是Neo4j CQL比較運算符之一。請參考下一節查看Neo4j CQL中可用的比較運算符。
4 <value><值> 它是一個字面值,如數字文字,字符串文字等。

Neo4j CQL中的布爾運算符

Neo4j支持以下布爾運算符在Neo4j CQL WHERE子句中使用以支持多個條件。

S.No. 布爾運算符 描述
1 AND 它是一個支持AND操作的Neo4j CQL關鍵字。
2 OR 它是一個Neo4j CQL關鍵字來支持OR操作。
3 NOT 它是一個Neo4j CQL關鍵字支持NOT操作。
4 XOR 它是一個支持XOR操作的Neo4j CQL關鍵字。

Neo4j CQL中的比較運算符

Neo4j 支持以下的比較運算符,在 Neo4j CQL WHERE 子句中使用來支持條件。

S.No. 布爾運算符 描述
1. = 它是Neo4j CQL“等於”運算符。
2. <> 它是一個Neo4j CQL“不等於”運算符。
3. < 它是一個Neo4j CQL“小於”運算符。
4. > 它是一個Neo4j CQL“大於”運算符。
5. <= 它是一個Neo4j CQL“小於或等於”運算符。
6. >= 它是一個Neo4j CQL“大於或等於”運算符。

例如:

此示例演示如何在MATCH Command中使用CQL WHERE子句根據員工名稱檢索員工詳細信息。

步驟1 -打開Neo4j數據瀏覽器
在這裏插入圖片描述

這是Neo4j數據瀏覽器主頁

步驟2 -在數據瀏覽器上鍵入以下命令

MATCH (emp:Employee)
RETURN emp.empid,emp.name,emp.salary,emp.deptno

在這裏插入圖片描述
步驟3 -點擊“執行”按鈕並觀察結果。
在這裏插入圖片描述

如果我們觀察結果,它返回4個員工節點詳細信息。

步驟4 -在數據瀏覽器上鍵入以下命令

MATCH (emp:Employee) 
WHERE emp.name = 'Abc'
RETURN emp

在這裏插入圖片描述
步驟5 -點擊“執行”按鈕並觀察結果。
在這裏插入圖片描述
使用“網格視圖”查看節點詳細信息。如果我們觀察結果,它只返回一個名爲“Abc”的員工詳細信息。

例如:

此示例演示如何在MATCH Command中的CQL WHERE子句中使用多個條件與布爾運算符,以根據員工名稱檢索員工詳細信息。

步驟1 -打開Neo4j數據瀏覽器
在這裏插入圖片描述
步驟2 -在數據瀏覽器上鍵入以下命令

MATCH (emp:Employee)
RETURN emp.empid,emp.name,emp.salary,emp.deptno

在這裏插入圖片描述
步驟3 -點擊“執行”按鈕並觀察結果。
在這裏插入圖片描述
如果我們觀察結果,它返回4個員工節點詳細信息。

步驟4 -在數據瀏覽器上鍵入以下命令

MATCH (emp:Employee) 
WHERE emp.name = 'Abc' OR emp.name = 'Xyz'
RETURN emp

在這裏插入圖片描述
步驟5-點擊“執行”按鈕並觀察結果。
在這裏插入圖片描述
使用“網格視圖”查看節點詳細信息。如果我們觀察到結果,它只返回兩個名爲“Abc”或“Xyz”的員工詳細信息。

使用WHERE子句創建關係

在Neo4J CQL中,我們可以以不同的方式創建拖曳節點之間的關係。
創建兩個現有節點之間的關係
一次創建兩個節點和它們之間的關係
使用WHERE子句創建兩個現有節點之間的關係
我們已經討論了前兩章中的前兩種方法。 現在我們將在本章中討論“使用WHERE子句創建兩個現有節點之間的關係”。
語法

MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>) 
WHERE <condition>
CREATE (<node1-label-name>)-[<relationship-label-name>:<relationship-name>
       {<relationship-properties>}]->(<node2-label-name>) 

語法說明:

S.No. 語法元素 描述
1 MATCH,WHERE,CREATE 他們是Neo4J CQL關鍵字。
2 <node1-label-name> 它是一個用於創建關係的節點一標籤名稱。
3 <node1-name> 它是一個用於創建關係的節點名稱。
4 <node2-label-name> 它是一個用於創建關係的節點一標籤名稱。
5 <node2-name> 它是一個用於創建關係的節點名稱。
6 <condition> 它是一個Neo4J CQL WHERE子句條件。 它可以是簡單的或複雜的。
7 <relationship-label-name> 這是新創建的節點一和節點二之間的關係的標籤名稱。
8 <relationship-name> 這是新創建的節點1和節點2之間的關係的名稱。
9 <relationship-properties> 這是一個新創建節點一和節點二之間關係的屬性列表(鍵 - 值對)。

例如:

此示例演示如何使用WHERE子句創建兩個現有節點之間的關係。

步驟1 -打開Neo4J數據瀏覽器

步驟2 -在數據瀏覽器上鍵入以下命令,以驗證我們的Neo4J數據庫中是否存在所需的客戶節點。

MATCH (cust:Customer)
RETURN cust.id,cust.name,cust.dob

在這裏插入圖片描述
步驟3 -點擊“執行”按鈕並觀察結果。
在這裏插入圖片描述
如果我們觀察結果,它表明我們所需的客戶節點在我們的Neo4J數據庫中可用。

步驟4 -在數據瀏覽器上鍵入以下命令,驗證我們的Neo4J數據庫中是否存在所需的CreditCard節點。

MATCH (cc:CreditCard)
RETURN cc.id,cc.number,cc.expiredate,cc.cvv

在這裏插入圖片描述
步驟5 -點擊“執行”按鈕並觀察結果。
在這裏插入圖片描述
如果我們觀察結果,它表明我們所需的CreditCard節點在我們的Neo4J數據庫中可用。

步驟6 -在數據瀏覽器上鍵入以下命令以創建客戶和CreditCard節點之間的關係。

MATCH (cust:Customer),(cc:CreditCard) 
WHERE cust.id = "1001" AND cc.id= "5001" 
CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc) 
RETURN r

在這裏插入圖片描述
步驟7 -點擊“執行”按鈕並觀察結果。

在這裏插入圖片描述
單擊關係並在單獨的窗口中觀察其屬性
在這裏插入圖片描述
現在我們通過使用Neo4J CQL WHERE子句在兩個現有節點之間創建了一個NEW關係。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章