当前位置: 首页 > news >正文

Cypher 是 Neo4j 专用的查询语言

Neo4j图中数据的特点,和SQL做对比学习。

1️⃣ 一个节点可以有多个标签(Label)

SQL 的一行数据只能属于一个表。
但在 Neo4j 中,一个节点可以同时拥有多个标签。

CREATE (p:Person:Doctor:Employee {name: "张三"})

这个节点既是 Person,又是 Doctor,还是 Employee,这在 SQL 里是做不到的(不能一行数据同时属于三个表)。


2️⃣ Neo4j 中没有“固定字段结构”

SQL 中每张表都有定义好的字段结构:

CREATE TABLE patient (id INT PRIMARY KEY,name VARCHAR(100),dob DATE
);

但是 Neo4j 中的节点可以没有固定属性结构,每个节点都有“动态 schema”。

CREATE (a:Patient {id: 1, name: "Alice"})
CREATE (b:Patient {id: 2, blood_type: "A+"})

这两个 Patient 节点的字段可以完全不同。

🧠 所以说:

Neo4j 是 schema-less(无模式) 的,而 SQL 是强模式(schema-on-write)


3️⃣ Neo4j 有边(关系),SQL 没有这个概念

这是最大的本质区别。

  • Neo4j 把“关系”当成一等公民,每个关系是可以存属性、有方向、有类型的。
  • SQL 只是用“外键”这种隐式连接去表达两个表之间的关系。

📌 举例:Neo4j 的关系

(p:Patient)-[:HAS_VISIT {date: "2023-08-01"}]->(v:Visit)

这条边有属性,可以查询、有方向、可扩展,非常强大。

SQL 只能写:

SELECT * FROM patient
JOIN visit ON patient.id = visit.patient_id;

但不能表示边的属性。


✅ 更准确的类比方式(建议记法)

SQL 概念Neo4j 中的本质区别建议记法
表 table没有直接对应;一个 label 是一类实体Label ≈ 实体类型
行 rowNode(但是非结构化的)Node ≈ 实体
列 columnNode/Relationship 的属性(但不统一)Property ≈ 动态字段
外键 foreign key显式的有向边,带属性,具语义Relationship(有方向、有类型)
联表 JOIN通过 MATCH + 关系匹配实现路径匹配(MATCH)

✅ 你可以这样理解 Neo4j 的设计哲学

Neo4j 不是表格 → 是图
它不是“表与表之间的关系”,而是:

节点与节点之间的直接连接,用关系表示

Neo4j 里的查询是:

  • 沿着边走(路径匹配)
  • 不靠表联结(JOIN)

🧠 总结

类别SQLNeo4j
数据单位行(row)节点(node)
分类方式表(table)标签(label),且可多个
连接方式外键 + JOIN显式边 + MATCH 路径
结构固定字段动态字段,灵活
http://www.xdnf.cn/news/1076491.html

相关文章:

  • 归因问答-有效归因实践
  • 笔记本电脑怎样投屏到客厅的大电视?怎样避免将电脑全部画面都投出去?
  • Nginx重定向协议冲突解决方案:The plain HTTP request was sent to HTTPS port
  • Qt中使用QSettings数据或结构体到INI文件
  • 用 YOLOv8 + DeepSORT 实现目标检测、追踪与速度估算
  • 05【C++ 入门基础】内联、auto、指针空值
  • 物联网数据洪流下,TDengine 如何助 ThingLinks 实现 SaaS 平台毫秒级响应?
  • 在Linux中下载docker
  • 【SQL优化案例】索引创建不合理导致SQL消耗大量CPU资源
  • SpringBoot - 定时任务改Cron不重启,调度规则生效
  • RuoYi-Vue前后端分离版实现前后端合并
  • 用Fiddler中文版抓包工具掌控微服务架构中的接口调试:联合Postman与Charles的高效实践
  • docker desktop部署本地gitlab服务
  • 学习昇腾开发的第12天--安装第三方依赖
  • 基于springboot的养老院管理系统
  • LINUX2.6设备注册与GPIO相关的API
  • Vue3 中 Excel 导出的性能优化与实战指南
  • JavaScript 安装使用教程
  • ip网络基础
  • FastGPT与MCP:解锁AI新时代的技术密码
  • 百度轮岗:任命新CFO,崔珊珊退居业务二线
  • 使用Electron开发跨平台RSS阅读器:从零到一的完整指南
  • Linux查看空间大小相关命令内容
  • 数据结构复习4
  • 前端计算机视觉:使用 OpenCV.js 在浏览器中实现图像处理
  • Oracle 常用函数
  • 38.docker启动python解释器,pycharm通过SSH服务直连
  • 【软考高项论文】论信息系统项目的进度管理
  • Zookeeper安装使用教程
  • SQL规范