Categories: neo4j 教程

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关系。


andy

前端小白,在Web176教程网这个平台跟大家一起学习,加油!

Share
Published by
andy

Recent Posts

聊聊vue3中的defineProps

在Vue 3中,defineP…

1 周 ago

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

2 周 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

3 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

4 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

4 周 ago

Vue3:手动清理keep-alive组件缓存的方法

Vue3中手动清理keep-a…

1 月 ago