Neo4j CQL学习Day4
1.WHERE子句
在数据库中,像SQL、CQL提供WHERE
在CQL中MATCH
命令字句来进行结果的筛选。
1.1 WHERE
子句的语法
WHERE <condition> <bool-operator> <condition>
语法说明:
S.NO | 语法元素 | 描述 |
---|---|---|
<condition > | 条件 | 无 |
<bool-operator > | 布尔运算符 | 比较运算 |
<condition > | 条件 | 无 |
其中,<condition
>语法如下:
<property-name> <comparison-operator> <value>
语法说明:
S.No. | 语法元素 | 描述 |
---|---|---|
1 | WHERE | 这是一个Neo4j的CQL关键字。 |
2 | <property-name > | 这是一个节点或关系的属性名。 |
3 | <comparison-operator > | 这是Neo4j的CQL比较operators.Please的一个是指在Neo4j的CQL可用比较运营商下一节。 |
4 | <value > | 这就像一些文字,字符串文字等文本值 |
1.2 布尔运算符
Neo4j的支持以下布尔运算符中的Neo4j CQL使用WHERE子句来支持多个条件。
S.No. | 布尔运算符 | 描述 |
---|---|---|
1 | 和 | 这是一个Neo4j的CQL关键字支持和操作。 它就像SQL和运营商。 |
2 | 要么 | 这是一个Neo4j的CQL关键字来支持或操作。 它就像SQL和运营商。 |
3 | 不 | 这是一个Neo4j的CQL关键字方式支持不操作。 它就像SQL和运营商。 |
4 | XOR | 它是一个的Neo4j CQL关键词来支持XOR操作。 它就像SQL和运营 |
1.3 比较运算符
Neo4j的支持以下比较运算符的Neo4j CQL使用WHERE子句来支持条件。
S.No. | 布尔运算符 | 描述 |
---|---|---|
1 | = | 这是一个Neo4j的定制列表“等于”操作符。 |
2 | <> | 这是一个Neo4j的定制列表“不等于”操作符。 |
3 | < | 这是一个Neo4j的定制列表“小于”操作符。 |
4 | > | 这是一个Neo4j的定制列表“大于”操作符。 |
5 | <= | 这是一个Neo4j的定制列表“小于或等于”操作符。 |
6 | > = | 这是一个Neo4j的定制列表“大于或等于”操作符。 |
【例子】
1.创建person节点
如上所示,建立了3个节点对应的3个属性。
2.WHERE
基本举例
在如步骤一所创建的节点下,我们对id='1001'
进行筛选并成功得出想要的结果。
3.WHERE
中OR
举例
在如步骤一所创建的节点,我们运用OR
得到id='1001',id='1002'
下的节点数据。
1.4 创建WHERE子句的关系
在Neo4j的CQL,我们可以创建不同的方法拖车节点之间的关系。
-
创建两个现有的节点之间的关系
-
一次创建它们之间的两个节点和关系
-
创建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 > | 这是新创建的节点之一,节点两者之间关系的一个名字。 |
9 | <relationship-properties > | 这是新创建的节点之一,节点两者之间关系的属性列表(键 - 值对)。 |
2.删除语句
Neo4j的CQL DELETE
子句用于
- 要删除一个节点。
- 要删除一个节点和相关节点和关系。
2.1 删除节点子句语法
DELETE <node-name-list>
S.No. | 语法元素 | 描述 |
---|---|---|
1 | DELETE | 这是一个Neo4j的CQL关键字。 |
2 | <node-name-list > | 它是节点名,它会从数据库中删除的列表。 |
注意
我们应该用逗号(,)运算符分隔节点名称
【例子】
1.先展示删除前Customer标签节点,删除前如下图所示。
2.其次输入语句后所示。
MATCH (e: Customer)
DELETE e
结果如下图所示。
3.如图所示,关于前面的标签节点已经完成删除,现在再次查看结果如下。
4.很明显,之前显示出来的标签节点属性信息已经被完全删除,说明删除成功。
2.2 删除节点和关系子句语法
DELETE <node1-name>,<node2-name>,<relationship-name>
S.No. | 语法元素 | 描述 |
---|---|---|
1 | DELETE | 这是一个Neo4j的CQL关键字。 |
2 | <node1-name > | 它是用于创建关系<关系名称>一端节点名称。 |
3 | <node2-name > | 它是用于创建关系<关系名称>另一个节点名称。 |
4 | <relationship-name > | 这是一个关系名,这是<节点1-name>和<节点2名>之间产生。 |
注意
我们应该用逗号(,)运算符分隔节点名称和关系名称。
2.3 删除属性子句语法
REMOVE <property-name-list>
S.No. | 语法元素 | 描述 |
---|---|---|
1 | REMOVE | 这是一个Neo4j的CQL关键字。 |
2 | <property-name-list > | 它是属性的列表,以从节点或永久性的关系将其删除。 |
<属性名称列表>语法
<node-name>.<property1-name>,
<node-name>.<property2-name>,
....
<node-name>.<propertyn-name>
语法说明
S.No | 语法元素 | 描述 |
---|---|---|
1 | <node-name > | 它是一个节点的名称。 |
2 | <property-name > | 它是一个节点的属性名。 |
注意
- 我们应该用逗号(,)运算符分隔标签名称列表。
- 我们应该用点(.)运算符分隔节点名称和标签名称
2.4删除标签子句语法
REMOVE <label-name-list>
S.No. | 语法元素 | 描述 |
---|---|---|
1 | REMOVE | 这是一个Neo4j的CQL关键字。 |
2 | <label-name-list > | 它是标签的列表,从节点或永久名花有主将其删除。 |
<标签名称列表>语法
<node-name>:<label1-name>,
<node-name>:<label2-name>,
....
<node-name>:<labeln-name>
语法说明
S.No. | 语法元素 | 描述 |
---|---|---|
1 | <node-name > | 它是一个节点的名称。 |
2 | <label-name > | 这是一个节点的标签名称。 |
注意:
-
我们应该用**逗号(,)**运算符分隔标签名称列表。
-
我们应该用**冒号(😃**运算符分隔节点名称和标签名称。
3.SET子句语法
SET <property-name-list>
S.No. | 语法元素 | 描述 |
---|---|---|
1 | SET | 这是一个Neo4j的CQL关键字。 |
2 | <property-name-list > | 这是属性执行添加或更新操作满足我们的要求清单。 |
3.1 <属性名称列表>语法:
<node-label-name>.<property1-name>,
<node-label-name>.<property2-name>,
....
<node-label-name>.<propertyn-name>
语法说明
S.No. | 语法元素 | 描述 |
---|---|---|
1 | <节点标签名称> | 这是一个节点的标签名称。 |
2 | <属性名称> | 它是一个节点的属性名。 |
注意
我们应该用**逗号(,)**运算符分隔的属性名称列表。