大数据学习
bigdata learning
Toggle navigation
大数据学习
主页
openGauss数据库
Flume
MongoDB
Hadoop
数据库实验
Kafka
Zookeeper
Hbase
Manual
Spark
Neo4j
InfluxDB
RabbitMQ
Flink
About Me
归档
标签
08-Neo4j-CREATE-WHERE
无
2024-04-17 09:59:47
25
0
0
bigdata
# Neo4j CQL 创建节点标签 Label 是 Neo4j 数据库中的节点或关系的名称或标识符。 我们可以将此标签名称称为关系为 “关系类型”。 我们可以使用 CQL CREATE 命令为节点或关系创建单个标签,并为节点创建多个标签。 这意味着 Neo4j 仅支持两个节点之间的单个关系类型。 我们可以在 UI 模式和网格模式下在 CQL 数据浏览器中观察此节点或关系的标签名称。 并且我们引用它执行 CQL 命令。 到目前为止,我们只创建了一个节点或关系的标签,但我们没有讨论它的语法。 使用 Neo4j CQL CREATE 命令 * 为节点创建单个标签 * 为节点创建多个标签 * 为关系创建单个标签 我们将在本章中讨论如何创建一个节点的单个标签或多个标签。 我们将在下一章讨论如何为关系创建一个单独的标签。 ## 单个标签到节点 语法: ``` CREATE (<node-name>:<label-name>) ``` <table><tbody><tr><th>S.No.</th><th>语法元素</th><th>描述</th></tr><tr><td>1</td><td>CREATE<br>创建</td><td>它是一个 Neo4j CQL 关键字。</td></tr><tr><td>2</td><td><node-name><br><节点名称></td><td>它是一个节点的名称。</td></tr><tr><td>3</td><td><p><label-name></p><p><标签名称></p></td><td>这是一个节点的标签名称。</td></tr></tbody></table> **注意 -** * 我们应该使用 colon(:) 运算符来分隔节点名和标签名。 * Neo4j 数据库服务器使用此名称将此节点详细信息存储在 Database.As Neo4j DBA 或 Developer 中,我们不能使用它来访问节点详细信息 * Neo4j 数据库服务器创建一个标签名称作为内部节点名称的别名。作为 Neo4j DBA 或开发人员,我们应该使用此标签名称来访问节点详细信息。 ### 例如: 本示例演示如何为 “GooglePlusProfile” 节点创建单个标签。 **步骤 1** - 打开 Neo4j 数据浏览器 **** 步骤 2 - 在数据浏览器上键入以下命令 ``` CREATE (google1:GooglePlusProfile) ``` 这里 google1 是一个节点名 GooglePlusProfile 是 google1node 的标签名称 **** 步骤 3 - 点击 “执行” 按钮并观察结果。  我们可以观察到在 Neo4j 数据库中创建了一个标签和一个节点。 ## 多个标签到节点 语法: ``` CREATE (<node-name>:<label-name1>:<label-name2>.....:<label-namen>) ``` <table><tbody><tr><th>S.No.</th><th>语法元素</th><th>描述</th></tr><tr><td>1。</td><td>CREATE<br>创建</td><td>这是一个 Neo4j CQL 关键字。</td></tr><tr><td>2。</td><td><node-name><br><节点名称></td><td>它是一个节点的名称。</td></tr><tr><td>3。</td><td><label-name1>,<label-name2><br><标签名 1>,< 标签名 2></td><td>它是一个节点的标签名称的列表。</td></tr></tbody></table> **注意 -** * 我们应该使用 colon(:) 运算符来分隔节点名和标签名。 * 我们应该使用 colon(:) 运算符将一个标签名称分隔到另一个标签名称。 ### 例如: 本示例演示如何为 “Cinema” 节点创建多个标签名称。 我们的客户提供的多个标签名称:Cinema,Film,Movie,Picture。 **步骤 1** - 打开 Neo4j 数据浏览器 **步骤 2** - 在数据浏览器上键入以下命令 ``` CREATE (m:Movie:Cinema:Film:Picture) ``` 这里 m 是一个节点名 Movie, Cinema, Film, Picture 是 m 节点的多个标签名称 **** 步骤 3 - 点击 “执行” 按钮并观察结果。  这里我们可以观察到在 Neo4j 数据库中创建了四个标签和一个节点。 ##单个标签到关系 语法: ``` CREATE (<node1-name>:<label1-name>)- [<relationship-name>:<relationship-label-name>] ->(<node2-name>:<label2-name>) ``` 语法说明 <table><tbody><tr><th>S.No.</th><th>语法元素</th><th>描述</th></tr><tr><td>1</td><td>CREATE<br>创建</td><td>它是一个 Neo4J CQL 关键字。</td></tr><tr><td>2</td><td><node1-name><br><节点 1 名></td><td>它是 From 节点的名称。</td></tr><tr><td>3</td><td><node2-name><br><节点 2 名></td><td>它是 To 节点的名称。</td></tr><tr><td>4</td><td><label1-name><br><LABEL1 名称></td><td>它是 From 节点的标签名称</td></tr><tr><td>5</td><td><label2-name><br><LABEL2 名称></td><td>它是 To 节点的标签名称。</td></tr><tr><td>6</td><td><relationship-name><br><关系名称></td><td>它是一个关系的名称。</td></tr><tr><td>7</td><td><relationship-label-name><br><相关标签名称></td><td>它是一个关系的标签名称。</td></tr></tbody></table> **注意 -** * 我们应该使用 colon(:) 运算符来分隔节点名和标签名。 * 我们应该使用 colon(:) 运算符来分隔关系名称和关系标签名称。 * 我们应该使用 colon(:) 运算符将一个标签名称分隔到另一个标签名称。 * Neo4J 数据库服务器使用此名称将此节点详细信息存储在 Database.As 中作为 Neo4J DBA 或开发人员,我们不能使用它来访问节点详细信息。 * Neo4J Database Server 创建一个标签名称作为内部节点名称的别名。作为 Neo4J DBA 或 Developer,我们应该使用此标签名称来访问节点详细信息。 ### 例如: **本示例演示如何为关系创建标签** **步骤 1** - 打开 Neo4J 数据浏览器 **步骤 2** - 在数据浏览器上键入以下命令 ``` CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2) ``` 这里 p1 和 profile1 是节点名称和节点标签名称 “From Node” p2 和 Profile2 是 “To Node” 的节点名称和节点标签名称 r1 是关系名称 LIKES 是一个关系标签名称 **** **步骤 3** - 点击 “执行” 按钮并观察结果。  这里我们可以观察到两个节点,两个标签和一个关系被添加到 Neo4J 数据库。 # WHERE 语法 ## 简单 WHERE 子句语法 ``` WHERE <condition> ``` 复杂 WHERE 子句语法 ``` WHERE <condition> <boolean-operator> <condition> ``` 我们可以使用布尔运算符在同一命令上放置多个条件。 请参考下一节,了解 Neo4j CQL 中可用的布尔运算符。 <condition> 语法: ``` <property-name> <comparison-operator> <value> ``` 语法说明: <table><tbody><tr><th>S.No.</th><th>语法元素</th><th>描述</th></tr><tr><td>1</td><td>WHERE</td><td>它是一个 Neo4j CQL 关键字。</td></tr><tr><td>2</td><td><property-name><br><属性名称></td><td>它是节点或关系的属性名称。</td></tr><tr><td>3</td><td><comparison-operator><br><比较运算符></td><td>它是 Neo4j CQL 比较运算符之一。请参考下一节查看 Neo4j CQL 中可用的比较运算符。</td></tr><tr><td>4</td><td><value><br><值></td><td>它是一个字面值,如数字文字,字符串文字等。</td></tr></tbody></table> Neo4j CQL 中的布尔运算符 Neo4j 支持以下布尔运算符在 Neo4j CQL WHERE 子句中使用以支持多个条件。 <table><tbody><tr><th>S.No.</th><th>布尔运算符</th><th>描述</th></tr><tr><td>1</td><td>AND</td><td>它是一个支持 AND 操作的 Neo4j CQL 关键字。</td></tr><tr><td>2</td><td>OR</td><td>它是一个 Neo4j CQL 关键字来支持 OR 操作。</td></tr><tr><td>3</td><td>NOT</td><td>它是一个 Neo4j CQL 关键字支持 NOT 操作。 </td></tr><tr><td>4</td><td>XOR</td><td>它是一个支持 XOR 操作的 Neo4j CQL 关键字。 </td></tr></tbody></table> Neo4j CQL 中的比较运算符 Neo4j 支持以下的比较运算符,在 Neo4j CQL WHERE 子句中使用来支持条件。 <table><tbody><tr><th>S.No.</th><th>布尔运算符</th><th>描述</th></tr><tr><td>1.</td><td>=</td><td>它是 Neo4j CQL“等于” 运算符。</td></tr><tr><td>2.</td><td><></td><td>它是一个 Neo4j CQL“不等于” 运算符。</td></tr><tr><td>3.</td><td><</td><td>它是一个 Neo4j CQL“小于” 运算符。</td></tr><tr><td>4.</td><td>></td><td>它是一个 Neo4j CQL“大于” 运算符。</td></tr><tr><td>5.</td><td><=</td><td>它是一个 Neo4j CQL“小于或等于” 运算符。</td></tr><tr><td>6.</td><td>>=</td><td>它是一个 Neo4j CQL“大于或等于” 运算符。</td></tr></tbody></table> ### 例如: ### 此示例演示如何在 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>) ``` 语法说明: <table><tbody><tr><th>S.No.</th><th>语法元素</th><th>描述</th></tr><tr><td>1</td><td>MATCH,WHERE,CREATE</td><td>他们是 Neo4J CQL 关键字。</td></tr><tr><td>2</td><td><node1-label-name></td><td>它是一个用于创建关系的节点一标签名称。</td></tr><tr><td>3</td><td><node1-name></td><td>它是一个用于创建关系的节点名称。</td></tr><tr><td>4</td><td><node2-label-name></td><td>它是一个用于创建关系的节点一标签名称。</td></tr><tr><td>5</td><td><node2-name></td><td>它是一个用于创建关系的节点名称。</td></tr><tr><td>6</td><td><condition></td><td>它是一个 Neo4J CQL WHERE 子句条件。 它可以是简单的或复杂的。</td></tr><tr><td>7</td><td><relationship-label-name></td><td>这是新创建的节点一和节点二之间的关系的标签名称。</td></tr><tr><td>8</td><td><relationship-name></td><td>这是新创建的节点 1 和节点 2 之间的关系的名称。</td></tr><tr><td>9</td><td><relationship-properties></td><td>这是一个新创建节点一和节点二之间关系的属性列表(键 - 值对)。</td></tr></tbody></table> ### 例如: 此示例演示如何使用 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 关系。
上一篇:
08-MongoDB 索引
下一篇:
08-Zookeeper四字命令
文档导航