Neo4j - CQL简介

简述

CQL 代表密码查询语言。就像 Oracle 数据库有查询语言 SQL,Neo4j 有 CQL 作为查询语言。

Neo4j CQL

  • 是 Neo4j 图形数据库的查询语言。
  • 是一种声明性模式匹配语言。
  • 遵循类似 SQL 的语法。
  • 语法非常简单并且是人类可读的格式。

像 Oracle SQL

  • Neo4j CQL 具有执行数据库操作的命令。
  • Neo4j CQL 支持许多子句,例如 WHERE、ORDER BY 等,可以轻松编写非常复杂的查询。
  • Neo4j CQL 支持 String、Aggregation 等一些功能。除了它们之外,它还支持一些关系函数。

Neo4j CQL 子句

以下是 Neo4j 的 read 子句CypherQueryLanguage

|----|----------------|------------------------------------------|
| 序号 | 阅读条款 | 用法 |
| 1 | MATCH | 该子句用于搜索具有指定模式的数据。 |
| 2 | OPTIONAL MATCH | 这与 match 相同,唯一的区别是它可以在缺少模式部分的情况下使用 null。 |
| 3 | WHERE | 此子句 id 用于向 CQL 查询添加内容。 |
| 4 | START | 该子句用于通过遗留索引查找起点。 |
| 5 | LOAD CSV | 该子句用于从 CSV 文件导入数据。 |

以下是 Neo4j 的 write 子句CypherQueryLanguage

|----|---------------------------------|-------------------------------------------------|
| 序号 | 写条款 | 用法 |
| 1 | CREATE | 该子句用于创建节点、关系和属性。 |
| 2 | MERGE | 该子句验证图形中是否存在指定的模式。如果没有,它会创建模式。 |
| 3 | SET | 该子句用于更新节点上的标签、节点上的属性和关系。 |
| 4 | DELETE | 该子句用于从图中删除节点和关系或路径等。 |
| 5 | REMOVE | 此子句用于从节点和关系中删除属性和元素。 |
| 6 | FOREACH | 此类用于更新列表中的数据。 |
| 7 | CREATE UNIQUE | 使用子句 CREATE 和 MATCH,您可以通过匹配现有模式并创建缺少的模式来获得唯一模式。 |
| 8 | Importing CSV files with Cypher | 使用加载 CSV,您可以从 .csv 文件导入数据。 |

以下是 Neo4j 的一般条款CypherQueryLanguage

|----|----------|---------------------------------------|
| 序号 | 一般条款 | 用法 |
| 1 | RETURN | 此子句用于定义要包含在查询结果集中的内容。 |
| 2 | ORDER BY | 此子句用于按顺序排列查询的输出。它与从句一起使用RETURN或者WITH. |
| 3 | LIMIT | 此子句用于将结果中的行限制为特定值。 |
| 4 | SKIP | 此子句用于定义从哪一行开始包括输出中的行。 |
| 5 | WITH | 该子句用于将查询部分链接在一起。 |
| 6 | UNWIND | 此子句用于将列表扩展为行序列。 |
| 7 | UNION | 该子句用于组合多个查询的结果。 |
| 8 | CALL | 该子句用于调用部署在数据库中的过程。 |

Neo4j CQL 函数

以下是常用的 Neo4j CQL 函数 -

|----|--------------|---------------------------------------|
| 序号 | CQL 函数 | 用法 |
| 1 | String | 它们用于处理字符串文字。 |
| 2 | Aggregation | 它们用于对 CQL 查询结果执行一些聚合操作。 |
| 3 | Relationship | 它们用于获取关系的详细信息,例如 startnode、endnode 等。 |

我们将在后续章节中详细讨论所有 Neo4j CQL 命令、子句和函数的语法、用法和示例。

Neo4j CQL 数据类型

这些数据类型类似于 Java 语言。它们用于定义节点或关系的属性。

Neo4j CQL 支持以下数据类型

|----|----------|----------------|
| 序号 | CQL 数据类型 | 用法 |
| 1 | Boolean | 它用于表示布尔文字:真、假。 |
| 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 Query 语言支持的运算符列表。

|----|-------|---------------------------|
| 序号 | 类型 | 运营商 |
| 1 | 数学 | +, -, *, /, %, ^ |
| 2 | 比较 | +、<>、、= |
| 3 | 布尔值 | 与、或、异或、非 |
| 4 | 字符串 | + |
| 5 | 列表 | +, IN, X, X.....Y |
| 6 | 正则表达式 | =- |
| 7 | 字符串匹配 | 开始于,结束于,约束 |

Neo4j CQL 中的布尔运算符

Neo4j 支持在 Neo4j CQL WHERE 子句中使用以下布尔运算符来支持多个条件。

|----|-------|-----------------------------------------------|
| 序号 | 布尔运算符 | 描述 |
| 1 | AND | 它是一个支持 AND 操作的 Neo4j CQL 关键字。它就像 SQL AND 运算符。 |
| 2 | OR | 它是一个支持 OR 操作的 Neo4j CQL 关键字。它就像 SQL AND 运算符。 |
| 3 | NOT | 它是一个支持 NOT 操作的 Neo4j CQL 关键字。它就像 SQL AND 运算符。 |
| 4 | XOR | 它是一个支持 XOR 操作的 Neo4j CQL 关键字。它就像 SQL AND 运算符。 |

Neo4j CQL 中的比较运算符

Neo4j 支持在 Neo4j CQL WHERE 子句中使用以下比较运算符来支持条件。

|----|-------|----------------------------|
| 序号 | 布尔运算符 | 描述 |
| 1 | = | 它是一个 Neo4j CQL "等于"运算符。 |
| 2 | < > | 它是一个 Neo4j CQL "不等于"运算符。 |
| 3 | | 它是一个 Neo4j CQL"小于"运算符。 |
| 4 | > | 它是一个 Neo4j CQL "大于"运算符。 |
| 5 | | 它是一个 Neo4j CQL"小于或等于"运算符。 |
| 6 | > = | 它是一个 Neo4j CQL "大于或等于"运算符。 |

内容来源:Neo4j CQL - 简介 - 菜鸟教程

相关推荐
凡达Ai派3 小时前
AI画布交付文件总是混在一起?用源文件、预览图和发布图三层目录分开管理
图像处理·深度学习·神经网络·自然语言处理·知识图谱
凡达Ai派4 小时前
AI画布里的文字总是错位或乱码?把生成、排版和校对拆成三段
图像处理·人工智能·深度学习·神经网络·自然语言处理·知识图谱
quweiie2 天前
Neo4j Community 安全访问配置总结
数据库·centos·neo4j
Joecien4 天前
【2026实测】百炼 CLI 托管 Agent 教程:bl managed-agent 配置校验、版本回滚与变更预演(附完整命令)
人工智能·git·阿里云·知识图谱·agi
probex_5 天前
学习笔记:知识图谱是什么,在测试里能干什么
笔记·学习·知识图谱
龙腾AI白云6 天前
AI检索增强生成(RAG):解决大模型幻觉的核心落地技术
数据库·人工智能·机器学习·知识图谱
Sayai6 天前
Neo4j 内嵌模式(Embedded)实战:Java 嵌入式 vs 服务端部署的写入性能对比与 GC 调优
java·开发语言·性能优化·neo4j·图数据库
probex_6 天前
学习笔记:知识图谱落地实践
笔记·学习·知识图谱
xhy_07076 天前
AI 编程工具怎么选?Cursor、Copilot、Claude Code、Trae、WES Code 理解代码库的三条技术路线
人工智能·机器学习·copilot·知识图谱·ai编程·wes code
子非鱼eva6 天前
ONNX模型导出实战:PyTorch 导出 ResNet18 模型
人工智能·pytorch·python·知识图谱·onnx·昇腾知识图谱