Neo4j CQL - WHERE子句


像SQL,Neo4j的CQL提供WHERE在CQL MATCH命令子句来筛选匹配查询结果。


简单的WHERE子句语法

WHERE <condition>

复杂的WHERE子句语法

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

我们可以通过使用布尔运算符将多个条件对同样的命令。 详情请参阅在Neo4j的CQL可用的布尔运算符下一节。


<条件>的语法:

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

语法说明

S.No. 语法元素 描述
1。 哪里 这是一个Neo4j的CQL关键字。
2。 <属性名称> 这是一个节点或关系的属性名。
3。 <比较运算符> 这是Neo4j的CQL比较operators.Please的一个是指在Neo4j的CQL可用比较运营商下一节。
4。 <值> 这就像一些文字,字符串文字等文本值

布尔运算符中的Neo4j CQL

Neo4j的支持以下布尔运算符中的Neo4j CQL使用WHERE子句来支持多个条件。

S.No. 布尔运算符 描述
1。 这是一个Neo4j的CQL关键字支持和操作。 它就像SQL和运营商。
2。 要么 这是一个Neo4j的CQL关键字来支持或操作。 它就像SQL和运营商。
3。 这是一个Neo4j的CQL关键字方式支持不操作。 它就像SQL和运营商。
4。 XOR 它是一个的Neo4j CQL关键词来支持XOR操作。 它就像SQL和运营商。

比较运营商的Neo4j CQL

Neo4j的支持以下比较运营商的Neo4j CQL使用WHERE子句来支持条件。

S.No. 布尔运算符 描述
1。 = 这是一个Neo4j的定制列表“等于”操作符。
2。 <> 这是一个Neo4j的定制列表“不等于”操作符。
3。 < 这是一个Neo4j的定制列表“小于”操作符。
4。 > 这是一个Neo4j的定制列表“大于”操作符。
5。 <= 这是一个Neo4j的定制列表“小于或等于”操作符。
6。 > = 这是一个Neo4j的定制列表“大于或等于”操作符。

这个例子演示了如何使用WHERE CQL在match命令子句检索基于员工的名字雇员的详细信息。

第1步 -打开Neo4j的数据浏览器

Neo4j的CQL教程

这是Neo4j的数据浏览器首页

第2步 -输入在数据浏览器下面的命令

MATCH (emp:Employee)
RETURN emp.empid,emp.name,emp.salary,emp.deptno
Neo4j的CQL教程

第3步 -点击“执行”按钮并观察结果。

Neo4j的CQL教程

如果我们观察的结果,它返回4 employee节点的详细信息。

第4步 -输入在数据浏览器下面的命令

MATCH (emp:Employee) 
WHERE emp.name = 'Abc'
RETURN emp
Neo4j的CQL教程

第5步 -点击“执行”按钮并观察结果。

Neo4j的CQL教程

使用“网格视图”,看看我们details.If观察结果的节点,它返回只有一个员工的详细信息,其名称是“ABC”。

这个例子演示了如何使用多个条件与CQL布尔算哪里的match命令子句根据员工姓名检索员工的详细信息。

第1步 -打开Neo4j的数据浏览器

Neo4j的CQL教程

第2步 -输入在数据浏览器下面的命令

MATCH (emp:Employee)
RETURN emp.empid,emp.name,emp.salary,emp.deptno
Neo4j的CQL教程

第3步 -点击“执行”按钮并观察结果。

Neo4j的CQL教程

如果我们观察的结果,它返回4 employee节点的详细信息。

第4步 -输入在数据浏览器下面的命令

MATCH (emp:Employee) 
WHERE emp.name = 'Abc' OR emp.name = 'Xyz'
RETURN emp
Neo4j的CQL教程

第5步 -点击“执行”按钮并观察结果。

Neo4j的CQL教程

使用“网格视图”,看看我们details.If观察结果的节点,它返回只有两个员工详细信息,其名称是“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。 全场比赛,WHERE,CREATE 他们是Neo4j的CQL关键字。
2。 <节点1标签名称> 它是用于创建关系的节点有一个标签名称。
3。 <节点1名> 它是用于创建关系一个节点一个名称。
4。 <节点2标签名称> 它是用于创建关系的节点有一个标签名称。
5。 <节点2名> 它是用于创建关系一个节点一个名称。
6。 <条件> 这是一个Neo4j的CQL WHERE子句条件。 它可以是简单的或复杂的。
7。 <相关标签名称> 这是新创建的节点之一,节点两者之间关系的标签名称。
8。 <关系名称> 这是新创建的节点之一,节点两者之间关系的一个名字。
9。 <关系的属性> 这是新创建的节点之一,节点两者之间关系的属性列表(键 - 值对)。

此示例演示如何创建具有WHERE子句现有的两个节点之间的关系。

第1步 -打开Neo4j的数据浏览器

第2步 -输入在数据浏览器下面的命令来验证我们的客户需要的节点是在我们的Neo4j数据库中。

MATCH (cust:Customer)
RETURN cust.id,cust.name,cust.dob
Neo4j的CQL教程

第3步 -点击“执行”按钮并观察结果。

Neo4j的CQL教程

如果我们观察的结果,它表明我们的客户所需的节点是在我们的Neo4j数据库中。

第4步 -输入在数据浏览器下面的命令来验证我们需要的信用卡式节点是在我们的Neo4j数据库中。

MATCH (cc:CreditCard)
RETURN cc.id,cc.number,cc.expiredate,cc.cvv
Neo4j的CQL教程

第5步 -点击“执行”按钮并观察结果。

Neo4j的CQL教程

如果我们观察的结果,它表明我们需要的信用卡式节点是在我们的Neo4j数据库中。

第6步 -输入在数据浏览器下面的命令来创建客户和信用卡式节点之间的关系。

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
Neo4j的CQL教程

第7步 -点击“执行”按钮并观察结果。

Neo4j的CQL教程

点击关系,并在单独的窗口观察它的性质

Neo4j的CQL教程

现在,我们已经用Neo4j的CQL WHERE子句创建了两个现有节点之间的新关系。