大数据学习
bigdata learning
Toggle navigation
大数据学习
主页
openGauss数据库
Flume
MongoDB
Hadoop
数据库实验
Kafka
Zookeeper
Hbase
Manual
Spark
Neo4j
InfluxDB
RabbitMQ
Flink
About Me
归档
标签
11-Neo4j-UNION-LIMIT-SKIP
无
2024-04-17 09:59:47
27
0
0
bigdata
# UNION语法 与 SQL 一样,Neo4j CQL 有两个子句,将两个不同的结果合并成一组结果 * UNION * UNION ALL 它将两组结果中的公共行组合并返回到一组结果中。 它不从两个节点返回重复的行。 ## 限制: 结果列类型和来自两组结果的名称必须匹配,这意味着列名称应该相同,列的数据类型应该相同。 ## UNION 子句语法 ``` <MATCH Command1> UNION <MATCH Command2> ``` 语法说明: <table><tbody><tr><th>S.No.</th><th>语法元素</th><th>描述</th></tr><tr><td>1。</td><td><MATCH COMMAND1></td><td>它是 CQL MATCH 命令,由 UNION 子句使用。</td></tr><tr><td>2。</td><td><MATCH Command2></td><td>它是 CQL MATCH 命令两个由 UNION 子句使用。</td></tr><tr><td>3。</td><td>UNION</td><td>它是 UNION 子句的 Neo4j CQL 关键字。</td></tr></tbody></table> **注意 -** 如果这两个查询不返回相同的列名和数据类型,那么它抛出一个错误。 在本章中,我们将采取一个银行应用程序的节点:信用卡式和借记卡解释 UNION 子句 ## 信用卡式节点数据 **第 1 步** - 打开 Neo4j 的数据浏览器  **第 2 步** - 在数据浏览器的美元提示符处键入以下命令。 ``` MATCH (cc:CreditCard) RETURN cc ``` 点击 “下载 CSV” 来查看结果  ## 借记卡数据的节点 **第 1 步** - 打开 Neo4j 的数据浏览器 **第 2 步** - 在数据浏览器的美元提示符处键入以下命令。 ``` MATCH (dc:DebitCard) RETURN dc ``` 点击 “下载 CSV” 来查看结果  我们将利用这些数据来解释的 Neo4j CQL UNION 与实例的使用 ### 例 **本例说明:如果 UNION 子句的这两个查询确实有相同的名称或相同的数据类型及其列会发生什么。** **第 1 步** - 打开 Neo4j 的数据浏览器 **第 2 步** - 在数据浏览器的美元提示符处键入以下命令。 ``` MATCH (cc:CreditCard) RETURN cc.id,cc.number UNION MATCH (dc:DebitCard) RETURN dc.id,dc.number ```  **第 3 步** - 点击执行按钮,看到成功消息数据浏览器。  这表明,这两个查询应具有相同的列名。 首先查询有:cc.id,cc.number。 第二个查询有:dc.id,dc.number。 这里既有信用卡式和借记卡具有相同的属性名:身份证和号码,但他们有不同的节点名称前缀。这就是为什么 UNION 命令显示此错误消息。为了避免这种错误,Neo4j 的 CQL 提供 “AS” 子句。 像 CQL,CQL Neo4j 的 “AS” 子句用于给一些别名。 ### 例 此示例演示如何使用 UNION 子句从两个节点检索数据。 **第 1 步** - 打开 Neo4j 的数据浏览器 **第 2 步** - 在数据浏览器的美元提示符处键入以下命令,然后单击执行按钮。 ``` MATCH (cc:CreditCard) RETURN cc.id as id,cc.number as number,cc.name as name, cc.valid_from as valid_from,cc.valid_to as valid_to UNION MATCH (dc:DebitCard) RETURN dc.id as id,dc.number as number,dc.name as name, dc.valid_from as valid_from,dc.valid_to as valid_to ```  在这里,因为 UNION 子句过滤它们,我们可以看到该命令返回 9 行没有重复的行。 ## UNION ALL 子句 它结合并返回两个结果集的所有行成一个单一的结果集。它还返回由两个节点重复行。 ### 限制 结果列类型,并从两个结果集的名字必须匹配,这意味着列名称应该是相同的,列的数据类型应该是相同的。 ### UNION ALL 子句语法 ``` <MATCH Command1> UNION ALL <MATCH Command2> ``` 语法说明 <table><tbody><tr><th>S.No.</th><th>语法元素</th><th>描述</th></tr><tr><td>1。</td><td><MATCH COMMAND1></td><td>这是 CQL match 命令由 UNION 子句中使用的一个。</td></tr><tr><td>2。</td><td><MATCH 命令 2></td><td>这是 CQL match 命令两到由 UNION 子句中使用。</td></tr><tr><td>3。</td><td>UNION ALL</td><td>这是 UNION ALL 子句的 Neo4j 的 CQL 关键字。</td></tr></tbody></table> **注意 -** 如果这两个查询不返回相同的列名和数据类型,那么它抛出一个错误。 在本章中,我们将采取一个银行应用程序的节点:信用卡式和借记卡解释 UNION 子句 ### 信用卡式节点数据 **第 1 步** - 打开 Neo4j 的数据浏览器 **第 2 步** - 在数据浏览器的美元提示符处键入以下命令。 ``` MATCH (cc:CreditCard) RETURN cc ``` 点击 “下载 CSV” 来查看结果  ### 借记卡数据的节点 **第 1 步** - 打开 Neo4j 的数据浏览器 **第 2 步** - 在数据浏览器的美元提示符处键入以下命令。 ``` MATCH (dc:DebitCard) RETURN dc ``` 点击 “下载 CSV” 来查看结果  我们将利用这些数据来解释的 Neo4j CQL UNION 与实例的使用 ### 例 本例说明:如果 UNION 子句的这两个查询确实有相同的名称或相同的数据类型及其列会发生什么。 **第 1 步** - 打开 Neo4j 的数据浏览器  这是 Neo4j 的数据浏览器首页 **第 2 步** - 在数据浏览器的美元提示符处键入以下命令。 ``` MATCH (cc:CreditCard) RETURN cc.id as id,cc.number as number,cc.name as name, cc.valid_from as valid_from,cc.valid_to as valid_to UNION ALL MATCH (dc:DebitCard) RETURN dc.id as id,dc.number as number,dc.name as name, dc.valid_from as valid_from,dc.valid_to as valid_to ``` **第 3 步** - 点击执行按钮,看到成功消息数据浏览器。  在这里,我们可以观察到这个命令返回 10 行,因为与 UNION ALL 子句不过滤它们重复行。如果我们使用 UNION 子句,它将返回只有 9 行。详情请参阅 UNION 子句章节进行检查。 # LIMIT语法 Neo4j CQL 已提供 “LIMIT” 子句来过滤或限制查询返回的行数。 它修剪 CQL 查询结果集底部的结果。 如果我们要修整 CQL 查询结果集顶部的结果,那么我们应该使用 CQL SKIP 子句。 请参考本章的下一节 CQL SKIP 子句。 LIMIT 子句语法 ``` LIMIT <number> ``` 语法说明: <table><tbody><tr><th>S.No.</th><th>语法元素</th><th>描述</th></tr><tr><td>1。</td><td>LIMIT</td><td>它是一个 Neo4j CQL 关键字。</td></tr><tr><td>2。</td><td><number></td><td>它是一个跨值。</td></tr></tbody></table> ### 例如: 本示例演示如何使用 CQL LIMIT 子句减少 MATCH + RETURN 查询返回的记录数。 **步骤 1** - 打开 Neo4j 数据浏览器  它是 Neo4j 数据浏览器主页 **步骤 2** - 在没有 LIMIT 子句的数据浏览器上键入以下命令 ``` MATCH (emp:Employee) RETURN emp ``` **** **步骤 3** - 点击 “执行” 按钮并观察结果。  它返回数据库中可用的结果的总数:4 条记录 **步骤 4** - 使用 LIMIT 子句在数据浏览器上键入以下命令 ``` MATCH (emp:Employee) RETURN emp LIMIT 2 ```  **步骤 5** - 点击 “执行” 按钮并观察结果。  它只返回 Top 的两个结果,因为我们定义了 limit = 2。这意味着前两行。 Neo4j CQL SKIP 子句 Neo4j CQL 已提供 “SKIP” 子句来过滤或限制查询返回的行数。 它修整了 CQL 查询结果集顶部的结果。 如果我们要从 CQL 查询结果集底部修整结果,那么我们应该使用 CQL LIMIT 子句。 请参阅本章的上一节 CQL LIMIT 子句。 # SKIP语法 ``` SKIP <number> ``` 语法说明: <table><tbody><tr><th>S.No.</th><th>语法元素</th><th>描述</th></tr><tr><td>1。</td><td>SKIP</td><td>它是一个 Neo4j CQL 关键字。</td></tr><tr><td>2。</td><td><number></td><td>它是一个间隔值。</td></tr></tbody></table> ### 例如: 此示例演示如何使用 CQL SKIP 子句减少 MATCH + RETURN 查询返回的记录数。 **步骤 1** - 打开 Neo4j 数据浏览器 **步骤 2** - 在没有 SKIP 子句的数据浏览器上键入以下命令 ``` MATCH (emp:Employee) RETURN emp ``` **** 步骤 3 - 点击 “执行” 按钮并观察结果。  它返回数据库中可用的结果的总数:4 条记录 **步骤 4** - 在带有 SKIP 子句的数据浏览器上键入以下命令 ``` MATCH (emp:Employee) RETURN emp SKIP 2 ``` **** **步骤 5** - 点击 “执行” 按钮并观察结果。  skip 跳过两个节点,因此我们定义了 skip = 2。这意味着最后两行。
上一篇:
11-MongoDB 管理工具
下一篇:
11-Zookeeper数据同步与Leader选举
文档导航