Neo4j学习Day5
第五天依然是语法的掌握学习,大致目录如下。
文章目录
现在正式开始第五天的学习~~
1.排序
1.1 CQL ORDER BY
语句
Neo4j的CQL语句提供排序的命令,我们可以排序行升序或者降序。
1.2 子句语法
ORDER BY <property-name-list> [DESC]
S.No. | 语法元素 | 描述 |
---|---|---|
1 | ORDER BY |
这是一个Neo4j的CQL关键字。 |
2 | <property-name-list > |
它是在分拣使用的属性的列表。 |
3 | DESC |
它是用于指定降序order.It是可选的一个Neo4j的CQL关键字。 |
其中属性名语法说明如下:
<node-label-name>.<property1-name>,
<node-label-name>.<property2-name>,
....
<node-label-name>.<propertyn-name>
S.No. | 语法元素 | 描述 |
---|---|---|
1 | <node-label-name > |
这是一个节点的标签名称。 |
2 | <property-name > |
它是一个节点的属性名。 |
这里需要注意:我们应该用逗号(,)运算符分隔的属性名称列表。
【举例】输出降序id表
- 打开数据浏览器
- 根据前面学习的案例进行排序前的检查
- 对列表以id为准进行降序排列
如上图所示,这是降序前所展示的列表。
输入以下代码后如下图所示。
MATCH(person:Person)
RETURN person.id,person.name,person.age
ORDER BY person.id DESC
2.UNION子句
它结合并返回来自两个组结果共同行到单个组结果。 它不会从两个节点返回重复的行。
2.1限制:
结果列类型,并从两个结果集的名字必须匹配,这意味着列名称应该是相同的,列的数据类型应该是相同的。
2.2UNION子句语法
<MATCH Command1>
UNION
<MATCH Command2>
语法说明
S.No. | 语法元素 | 描述 |
---|---|---|
1 | <MATCH COMMAND1 > |
这是CQL match命令由UNION子句中使用的一个。 |
2 | <MATCH COMMAND2 > |
这是CQL match命令两到由UNION子句中使用。 |
3 | UNION |
这是UNION子句的Neo4j的CQL关键字。 |
注意
如果这两个查询不返回相同的列名和数据类型,那么它抛出一个错误。
3.UNION ALL子句
它结合并返回两个结果集的所有行成一个单一的结果集。 它还返回由两个节点重复行。
3.1 限制
结果列类型,并从两个结果集的名字必须匹配,这意味着列名称应该是相同的,列的数据类型应该是相同的。
3.2 UNION ALL子句语法
<MATCH Command1>
UNION ALL
<MATCH Command2>
语法说明
S.No. | 语法元素 | 描述 |
---|---|---|
1 | <MATCH COMMAND1> |
这是CQL match 命令由UNION 子句中使用的一个。 |
2 | <MATCH命令2> |
这是CQL match 命令两到由UNION 子句中使用。 |
3 | UNION ALL |
这是UNION ALL 子句的Neo4j的CQL关键字。 |
注意
如果这两个查询不返回相同的列名和数据类型,那么它抛出一个错误。
4.限制和条款
4.1 限制limit
子句
LIMIT <number>
语法说明
S.No. | 语法元素 | 描述 |
---|---|---|
1 | limit |
这是一个Neo4j的CQL关键字。 |
2 | <number> |
它是一个跨值。 |
比如说,我们想返回表中前面两行的信息,就可以在RETURN
后再加上LIMIT
子句。
4.2 SKIP条款
SKIP <number>
语法说明
S.No. | 语法元素 | 描述 |
---|---|---|
1 | SKIP |
这是一个Neo4j的CQL关键字。 |
2 | <number> |
它是一个跨值。 |
它的大致意思是跳过前number
个信息。比如使用SKIP 2
后,运行后会自动跳过前面2行的信息。
5.CQL合并
Neo4j的CQL MERGE使用命令
- 要创建节点,关系和属性
- 为了从数据库中检索数据
MERGE命令相当于CREATE
命令和MATCH
命令的组合。
MERGE = CREATE + MATCH
Neo4j的CQL MERGE图中的给定模式命令搜索,如果存在则返回结果
如果它不在图中存在,则它创建新的节点/关系并返回结果。
Neo4j的CQL MERGE语法
MERGE (<node-name>:<label-name>
{
<Property1-name>:<Pro<rty1-Value>
.....
<Propertyn-name>:<Propertyn-Value>
})
语法说明
S.No. | 语法元素 | 描述 |
---|---|---|
1 | MERGE |
这是一个Neo4j的CQL关键字。 |
2 | <node-name > |
它是一个节点或关系的名称。 |
3 | <label-name > |
这是一个节点或关系的标签名称。 |
4 | <PROPERTY_NAME > |
这是一个节点或关系的属性名。 |
5 | <PROPERTY_VALUE > |
这是一个节点或关系的属性值。 |
6 | : | 使用冒号(:)操作符来分隔属性名称和一个节点或关系的价值。 |
【举例】
1.首先用MERGE
创建出一个节点信息以及属性。
2.用MATCH-RETURN
尝试返回其运行结果。
6.IN操作符
IN[<Collection-of-values>]
语法说明:
S.No. | 语法元素 | 描述 |
---|---|---|
1 | in |
这是一个Neo4j的CQL关键字。 |
2 | [ | 它告诉Neo4j的CQL该值的集合的开始。 |
3 | ] | 它告诉Neo4j的CQL该值的集合的末尾。 |
4 | <Collection-of-values> |
它是由逗号运算符分隔值的集合。 |
【举例】
上图所示的是文档中创建过的person
节点中,将id='1001',id='1002'
的信息返回并以列表显示。
以上的知识点在SQL语句中也有大量涉及到哟,这为日后打好MySQL基础无疑是帮了大忙。谢谢大家的阅读并且批评指正。