像SQL一樣,Neo4j CQL在CQL MATCH命令中提供了WHERE子句來過濾MATCH查詢的結(jié)果。
WHERE <condition>
WHERE <condition> <boolean-operator> <condition>
我們可以使用布爾運(yùn)算符在同一命令上放置多個(gè)條件。 請(qǐng)參考下一節(jié),了解Neo4j CQL中可用的布爾運(yùn)算符。
<property-name> <comparison-operator> <value>
語法說明:
S.No. | 語法元素 | 描述 |
---|---|---|
1 | WHERE | 它是一個(gè)Neo4j CQL關(guān)鍵字。 |
2 | <property-name> <屬性名稱> | 它是節(jié)點(diǎn)或關(guān)系的屬性名稱。 |
3 | <comparison-operator> <比較運(yùn)算符> | 它是Neo4j CQL比較運(yùn)算符之一。請(qǐng)參考下一節(jié)查看Neo4j CQL中可用的比較運(yùn)算符。 |
4 | <value> <值> | 它是一個(gè)字面值,如數(shù)字文字,字符串文字等。 |
Neo4j支持以下布爾運(yùn)算符在Neo4j CQL WHERE子句中使用以支持多個(gè)條件。
S.No. | 布爾運(yùn)算符 | 描述 |
---|---|---|
1 | AND | 它是一個(gè)支持AND操作的Neo4j CQL關(guān)鍵字。 |
2 | OR | 它是一個(gè)Neo4j CQL關(guān)鍵字來支持OR操作。 |
3 | NOT | 它是一個(gè)Neo4j CQL關(guān)鍵字支持NOT操作。 |
4 | XOR | 它是一個(gè)支持XOR操作的Neo4j CQL關(guān)鍵字。 |
Neo4j 支持以下的比較運(yùn)算符,在 Neo4j CQL WHERE 子句中使用來支持條件。
S.No. | 布爾運(yùn)算符 | 描述 |
---|---|---|
1. | = | 它是Neo4j CQL“等于”運(yùn)算符。 |
2. | <> | 它是一個(gè)Neo4j CQL“不等于”運(yùn)算符。 |
3. | < | 它是一個(gè)Neo4j CQL“小于”運(yùn)算符。 |
4. | > | 它是一個(gè)Neo4j CQL“大于”運(yùn)算符。 |
5. | <= | 它是一個(gè)Neo4j CQL“小于或等于”運(yùn)算符。 |
6. | >= | 它是一個(gè)Neo4j CQL“大于或等于”運(yùn)算符。 |
步驟1 -打開Neo4j數(shù)據(jù)瀏覽器
步驟2 -在數(shù)據(jù)瀏覽器上鍵入以下命令
MATCH (emp:Employee) RETURN emp.empid,emp.name,emp.salary,emp.deptno
步驟3 -點(diǎn)擊“執(zhí)行”按鈕并觀察結(jié)果。
步驟4 -在數(shù)據(jù)瀏覽器上鍵入以下命令
MATCH (emp:Employee) WHERE emp.name = 'Abc' RETURN emp
此示例演示如何在MATCH Command中的CQL WHERE子句中使用多個(gè)條件與布爾運(yùn)算符,以根據(jù)員工名稱檢索員工詳細(xì)信息。
步驟1 -打開Neo4j數(shù)據(jù)瀏覽器
MATCH (emp:Employee) RETURN emp.empid,emp.name,emp.salary,emp.deptno
步驟3 -點(diǎn)擊“執(zhí)行”按鈕并觀察結(jié)果。
步驟4 -在數(shù)據(jù)瀏覽器上鍵入以下命令
MATCH (emp:Employee) WHERE emp.name = 'Abc' OR emp.name = 'Xyz' RETURN emp
步驟5-點(diǎn)擊“執(zhí)行”按鈕并觀察結(jié)果。
在Neo4J CQL中,我們可以以不同的方式創(chuàng)建拖曳節(jié)點(diǎn)之間的關(guān)系。
創(chuàng)建兩個(gè)現(xiàn)有節(jié)點(diǎn)之間的關(guān)系
一次創(chuàng)建兩個(gè)節(jié)點(diǎn)和它們之間的關(guān)系
使用WHERE子句創(chuàng)建兩個(gè)現(xiàn)有節(jié)點(diǎn)之間的關(guān)系
我們已經(jīng)討論了前兩章中的前兩種方法。 現(xiàn)在我們將在本章中討論“使用WHERE子句創(chuàng)建兩個(gè)現(xiàn)有節(jié)點(diǎn)之間的關(guān)系”。
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關(guān)鍵字。 |
2 | <node1-label-name> | 它是一個(gè)用于創(chuàng)建關(guān)系的節(jié)點(diǎn)一標(biāo)簽名稱。 |
3 | <node1-name> | 它是一個(gè)用于創(chuàng)建關(guān)系的節(jié)點(diǎn)名稱。 |
4 | <node2-label-name> | 它是一個(gè)用于創(chuàng)建關(guān)系的節(jié)點(diǎn)一標(biāo)簽名稱。 |
5 | <node2-name> | 它是一個(gè)用于創(chuàng)建關(guān)系的節(jié)點(diǎn)名稱。 |
6 | <condition> | 它是一個(gè)Neo4J CQL WHERE子句條件。 它可以是簡單的或復(fù)雜的。 |
7 | <relationship-label-name> | 這是新創(chuàng)建的節(jié)點(diǎn)一和節(jié)點(diǎn)二之間的關(guān)系的標(biāo)簽名稱。 |
8 | <relationship-name> | 這是新創(chuàng)建的節(jié)點(diǎn)1和節(jié)點(diǎn)2之間的關(guān)系的名稱。 |
9 | <relationship-properties> | 這是一個(gè)新創(chuàng)建節(jié)點(diǎn)一和節(jié)點(diǎn)二之間關(guān)系的屬性列表(鍵 - 值對(duì))。 |
此示例演示如何使用WHERE子句創(chuàng)建兩個(gè)現(xiàn)有節(jié)點(diǎn)之間的關(guān)系。
步驟1 -打開Neo4J數(shù)據(jù)瀏覽器
步驟2 -在數(shù)據(jù)瀏覽器上鍵入以下命令,以驗(yàn)證我們的Neo4J數(shù)據(jù)庫中是否存在所需的客戶節(jié)點(diǎn)。
MATCH (cust:Customer) RETURN cust.id,cust.name,cust.dob
步驟3 -點(diǎn)擊“執(zhí)行”按鈕并觀察結(jié)果。
步驟4 -在數(shù)據(jù)瀏覽器上鍵入以下命令,驗(yàn)證我們的Neo4J數(shù)據(jù)庫中是否存在所需的CreditCard節(jié)點(diǎn)。
MATCH (cc:CreditCard) RETURN cc.id,cc.number,cc.expiredate,cc.cvv
步驟5 -點(diǎn)擊“執(zhí)行”按鈕并觀察結(jié)果。
步驟6 -在數(shù)據(jù)瀏覽器上鍵入以下命令以創(chuàng)建客戶和CreditCard節(jié)點(diǎn)之間的關(guān)系。
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
更多建議: