Neo4j CQL - 简介
CQL 代表 Cypher 查询语言。 就像 Oracle 数据库有查询语言 SQL 一样,Neo4j 有 CQL 作为查询语言。
Neo4j CQL
- 是 Neo4j 图形数据库的查询语言。
- 是一种声明式模式匹配语言。
- 遵循类似 SQL 的语法。
- 语法非常简单,并且采用人类可读的格式。
像 Oracle SQL
Neo4j CQL 具有执行数据库操作的命令。
Neo4j CQL 支持 WHERE、ORDER BY 等多种子句,可以轻松编写非常复杂的查询。
Neo4j CQL 支持一些函数,例如 String、Aggregation。 除此之外,它还支持一些关系函数。
Neo4j CQL 子句
以下是 Neo4j Cypher Query Language 的读取子句 −
Sr.No | 读取子句 | 用法 |
---|---|---|
1 | MATCH | 该子句用于搜索具有指定模式的数据。 |
2 | OPTIONAL MATCH | 这与 match 相同,唯一的区别是它可以在模式丢失部分的情况下使用 null。 |
3 | WHERE | 此子句 ID 用于向 CQL 查询添加内容。 |
4 | START | 该子句用于通过旧索引查找起点。 |
5 | LOAD CSV | 此子句用于从 CSV 文件导入数据。 |
以下是 Neo4j Cypher Query Language 的写入子句 −
Sr.No | 写入子句 | 用法 |
---|---|---|
1 | CREATE | 该子句用于创建节点、关系和属性。 |
2 | MERGE | 该子句验证指定的模式是否存在于图中。 如果没有,它会创建模式。 |
3 | SET | 该子句用于更新节点上的标签、节点上的属性和关系。 |
4 | DELETE | 该子句用于从图中删除节点、关系或路径等。 |
5 | REMOVE | 此子句用于从节点和关系中删除属性和元素。 |
6 | FOREACH | 此类用于更新列表中的数据。 |
7 | CREATE UNIQUE | 使用子句 CREATE 和 MATCH,您可以通过匹配现有模式并创建缺失的模式来获得唯一的模式。 |
8 | 使用 Cypher 导入 CSV 文件 | 使用加载 CSV,您可以从 .csv 文件导入数据。 |
以下是 Neo4j Cypher Query Language 的一般子句 −
Sr.No | 一般子句 | 用法 |
---|---|---|
1 | RETURN | 该子句用于定义查询结果集中包含哪些内容。 |
2 | ORDER BY | 该子句用于按顺序排列查询的输出。 它与子句 RETURN 或 WITH 一起使用。 |
3 | LIMIT | 该子句用于将结果中的行限制为特定值。 |
4 | SKIP | 此子句用于定义从哪一行开始,包括输出中的行。 |
5 | WITH | 该子句用于将查询部分链接在一起。 |
6 | UNWIND | 此子句用于将列表扩展为行序列。 |
7 | UNION | 该子句用于组合多个查询的结果。 |
8 | CALL | 该子句用于调用数据库中部署的过程。 |
Neo4j CQL 函数
以下是常用的 Neo4j CQL 函数 −
Sr.No | CQL 函数 | 用法 |
---|---|---|
1 | String | 它们用于处理字符串文字。 |
2 | Aggregation | 它们用于对CQL查询结果执行一些聚合操作。 |
3 | Relationship | 它们用于获取关系的详细信息,例如起始节点、结束节点等。 |
我们将在后续章节中详细讨论所有 Neo4j CQL 命令、子句和函数的语法、用法和示例。
Neo4j CQL 数据类型
这些数据类型与Java语言类似。 它们用于定义节点或关系的属性。
Neo4j CQL 支持以下数据类型 −
Sr.No | CQL 数据类型 | 用法 |
---|---|---|
1 | Boolean | 用于表示布尔文字:true、false。 |
2 | byte | 用于表示8位整数。 |
3 | short | 用于表示16位整数。 |
4 | int | 用于表示32位整数。 |
5 | long | 用于表示64位整数。 |
6 | float | 用于表示32位浮点数。 |
7 | double | 用于表示64位浮点数。 |
8 | char | 用于表示16位字符。 |
9 | String | 用于表示字符串。 |
CQL 运算符
以下是 Neo4j Cypher 查询语言支持的运算符列表。
Sr.No | 类型 | 运算符 |
---|---|---|
1 | +, -, *, /, %, ^ | |
2 | 比较 | +, <>, <, >, <=, >= |
3 | 布尔值 | AND, OR, XOR, NOT |
4 | 字符串 | + |
5 | 列表 | +, IN, [X], [X…..Y] |
6 | 正则表达式 | =- |
7 | 字符串匹配 | STARTS WITH, ENDS WITH, CONSTRAINTS |
Neo4j CQL 中的布尔运算符
Neo4j 支持在 Neo4j CQL WHERE 子句中使用以下布尔运算符来支持多个条件。
Sr.No | 布尔运算符 | 描述 |
---|---|---|
1 | AND | 它是一个Neo4j CQL关键字,支持AND运算。 它就像 SQL AND 运算符。 |
2 | OR | 它是一个 Neo4j CQL 关键字,支持 OR 运算。 它就像 SQL AND 运算符。 |
3 | NOT | 它是一个 Neo4j CQL 关键字,支持 NOT 操作。 它就像 SQL AND 运算符。 |
4 | XOR | 它是一个 Neo4j CQL 关键字,支持 XOR 操作。 它就像 SQL AND 运算符。 |
Neo4j CQL 中的比较运算符
Neo4j 支持在 Neo4j CQL WHERE 子句中使用以下比较运算符来支持条件。
Sr.No | 布尔运算符 | 描述 |
---|---|---|
1 | = | 它是 Neo4j CQL"等于"运算符。 |
2 | < > | 它是 Neo4j CQL"不等于"运算符。 |
3 | < | 它是 Neo4j CQL"小于"运算符。 |
4 | > | 它是 Neo4j CQL"大于"运算符。 |
5 | <= | 它是 Neo4j CQL"小于或等于"运算符。 |
6 | > = | 它是 Neo4j CQL"大于或等于"运算符。 |