跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
SQL

Neo4j 数据导入实战:LOAD CSV、MATCH 与 MERGE 语法详解

Neo4j 数据导入主要涉及从外部文件读取数据、查找或创建节点以及建立关系。核心语句包括 LOAD CSV 用于读取 CSV 文件,FROM 指定文件路径,MATCH 用于查找已存在的节点,MERGE 用于存在则使用不存在则创建节点或关系。通过组合这些语句,可以实现高效的数据迁移和图谱构建,避免重复数据并准确关联信息。

JavaCoder发布于 2026/4/5更新于 2026/7/1731 浏览

概述

在 Neo4j 中,一条导入语句大致是这样工作的:

从文件里读数据(LOAD + FROM) → 在图里找节点(MATCH)或创建节点(MERGE) → 建立关系


详细解析

1. LOAD CSV

是什么

LOAD CSV = '从 CSV 文件中一行一行读取数据'

你可以把它理解成:

'for each row in this CSV file'

你用过的例子
LOAD CSV WITH HEADERS FROM "file:///neo4j_wtg_nodes.csv" AS line
拆解意思:
部分含义
LOAD CSV说明要读 CSV
WITH HEADERS第一行是列名
FROM "file:///xxx.csv"文件路径
AS line每一行叫 line

之后你就可以用:

line.node_id
什么时候用

✔ 导入数据时必用
✔ Neo4j 从外部文件读取数据的唯一方式之一


2. FROM

是什么

FROM = 指定数据来源

在 Neo4j 中几乎只跟 LOAD CSV 搭配。

FROM "file:///xxx.csv"
注意两点(很重要):
  1. 必须放在 neo4j/import 目录
  2. 路径前面必须是:
file:///

3. MATCH

是什么

MATCH = 在图数据库中'查找已经存在的节点或关系'

你可以把它理解成:

'在图里找符合条件的东西'

你用过的例子
MATCH (a:WTG_Variable {name: line.src}) MATCH (b:WTG_Variable {name: line.dst})
含义是:
  • 找一个 name = line.src 的节点
  • 找一个 name = line.dst 的节点

⚠️ MATCH 不会创建东西

  • 找不到 → 返回空 → 后面的语句不执行
什么时候用

✔ 节点已经存在,只想用它
✔ 建立关系前几乎一定要 MATCH


4. MERGE(最关键的一个)

是什么

MERGE = '如果存在就用,不存在就创建'

它相当于:

SQL 里的 SELECT + INSERT 合体版

创建节点时
MERGE (n:WTG_Variable {name: line.node_id});

意思是:

  • 如果已经有 name = xxx 的节点 → 用它
  • 如果没有 → 新建一个

👉 不会重复创建

创建关系时
MERGE (a)-[:INFLUENCES]->(b);

意思是:

  • 关系存在 → 用
  • 不存在 → 创建
什么时候用

✔ 导入数据
✔ 防止重复节点 / 重复关系
✔ 90% 的导入语句都用 MERGE


语句拆解示例

节点导入语句

LOAD CSV WITH HEADERS FROM "file:///neo4j_wtg_nodes.csv" AS line MERGE (n:WTG_Variable {name: line.node_id});
逐行解释:
  1. 从 CSV 读一行
  2. 这一行叫 line
  3. line.node_id 取变量名
  4. 如果这个变量节点存在 → 用
  5. 不存在 → 创建

关系导入语句

LOAD CSV WITH HEADERS FROM "file:///neo4j_wtg_relationships.csv" AS line MATCH (a:WTG_Variable {name: line.src}) MATCH (b:WTG_Variable {name: line.dst}) MERGE (a)-[:INFLUENCES]->(b);
核心逻辑是:
  1. 从 CSV 读一行关系
  2. 找源节点 a
  3. 找目标节点 b
  4. 建立关系(不重复)

关键字对照表

关键字干啥的什么时候用
LOAD CSV读文件导入 CSV
FROM文件路径只跟 LOAD 用
MATCH找已有节点建关系前
MERGE找或建导入节点 / 关系
CREATE只创建不怕重复时

总结

LOAD 负责'读数据',
MATCH 负责'找已有',
MERGE 负责'别重复',
FROM 只是'文件地址'。

目录

  1. 概述
  2. 详细解析
  3. 1. LOAD CSV
  4. 是什么
  5. 你用过的例子
  6. 拆解意思:
  7. 什么时候用
  8. 2. FROM
  9. 是什么
  10. 注意两点(很重要):
  11. 3. MATCH
  12. 是什么
  13. 你用过的例子
  14. 含义是:
  15. 什么时候用
  16. 4. MERGE(最关键的一个)
  17. 是什么
  18. 创建节点时
  19. 创建关系时
  20. 什么时候用
  21. 语句拆解示例
  22. 节点导入语句
  23. 逐行解释:
  24. 关系导入语句
  25. 核心逻辑是:
  26. 关键字对照表
  27. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 金融从业者必备:Python 在数据分析、量化与风控中的应用
  • OpenClaw 新手入门:环境搭建、模型配置与 WebUI 远程访问
  • AI 大模型:提示工程的核心概念与实战技巧
  • Web3.0 开发实践:核心概念与技术架构
  • 利用 AI 快速开发 MCP 服务插件并实现本地与线上部署
  • 通过 URI Scheme 实现从 Web 页面启动本地 C++ 应用程序及源码示例
  • 非科班无实习入职大厂前端:开发之外的事才是破局关键
  • C++ Vector 容器详解:基本用法与迭代器失效
  • Web3.0 面临的网络安全风险与挑战深度解析
  • Linux 进程信号(上):信号产生方式和闹钟
  • 手撕 STL vector:C++ 动态顺序表核心原理
  • SkyWalking Python 应用分布式追踪实战指南
  • 开源全球情报监控平台 World Monitor 技术架构解析
  • 数据结构:树、二叉树、堆排序与 TOP-K 问题解析
  • AI 大模型开发指南:核心技术与实践路径
  • 前端面试核心题库:场景题、原理与工程化实战
  • C++ 笔试刷题 Day 16:字符串替换、神奇数及 DNA 序列
  • Python 零基础入门教程:基础语法与核心概念详解
  • 基于 AI 陪练的前端新手入门:从零开始构建第一个网页
  • Python 常见错误类型与排查解决指南

相关免费在线工具

  • SQL 美化和格式化

    在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online

  • SQL转CSV/JSON/XML

    解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL转CSV/JSON/XML在线工具,online

  • CSV 工具包

    CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online