我是龙须草,深耕软硬件技术开发与管理,产品架构师;

一个相信“工具为人服务”的践行者,链接有缘之人,共探新可能。

今天挑战一下自己,用小白都能理解的角度来分享下N8N怎么调用数据库。

先说下数据库是什么?

一、数据库到底是啥?

你可以把数据库想象成一个 “超级智能的电子文件柜”,它可以 “存数据、管数据、快查数据” 的工具,你每天用的 APP、网站、甚至手机里的通讯录,背后都有数据库在干活。

1、数据库有哪些类别?

最常见的是两大类:

  • 关系型:像 Excel 表格,存格式整齐的信息(如工资、银行卡号),稳且准,比如银行用的 Oracle、淘宝用的 MySQL,数据之间是有关联的,这种数据库内有很多表,每个表存储一类数据。

比如一个学生的数据库:

不同的表存储不同信息,比如学生信息、班级信息、成绩、获奖信息等。每个表都通过不同的关键字来关联起来,共同组成学生的整体信息,所以这类数据库叫关系型数据库;

  • 非关系型:像记事本,存格式灵活的信息(如朋友圈、短视频内容),快且灵活,比如存抖音内容的 MongoDB,这类数据库每条信息都可以独立,一般是以键值对的形式存在。

2、数据库能做啥?

你每天的生活,都在 “用数据库”,只是自己没察觉:

存你个人的信息:联系人、银行卡、余额、身份证、各网站注册的信息都在用数据库。

帮你 “快速找东西”:淘宝商品搜索、美团搜索的酒店、美食、附近的商家。

记 “流水账” 并算账:饿了么订单、公司财务月底算工资、应发工资、扣税多少。

3、数据库小结

  • 数据库 = 智能电子文件柜:存数据、管数据、快查数据;

  • 类别分两种:关系型(稳、适合表格数据,如银行 / 电商)、非关系型(灵活、适合乱数据,如社交 / 短视频);

  • 作用:APP、网站、手机功能,背后都靠它存信息、算数据 —— 没有数据库,就没有现在的互联网生活。

二、准备工作

1、下载和安装MySQL数据库

参考文章(点击即可跳转):

入门级:小白必看!超详细 MySQL 下载安装手把手教程,0 基础也能 10 分钟搞定

2、创建数据库

我们前面只是把数据库的管理软件安装好了,它会默认创建几个数据库,我们需要自己来创建我们需要的数据库。

重新打开我们刚刚关闭的:MySQL Workbench 8.0 CE

点击下图的数据库连接,输入密码:123456(参考文章使用的密码是:123456)

打开后,我们创建一个Schema,这个就是我们通常说的数据库

名称随便填,我填写的是:n8n,给N8N专用的,下面两项可以使用默认。然后点击:Apply按钮。

点击:Apply按钮,应用开始创建数据库。

点击:Finish按钮

点击下图的:SChemas,可以看到我们新建的数据库,点开后里面是空的,因为我们还没有建数据库表。

可以看看它自带的数据库,里面是有一些示例数据的。

3、创建数据表单

先弄清楚我们的需求:我们需要采集新闻热点,主要包括:文章标题、文章链接、文章内容、发布时间就可以了。

所以我们把这个需求丢给大模型来生成一个创建上面表单的SQL执行语句。

提示词:我想创建一个MySQL数据库的表单,内容包括:文章标题、文章链接、文章内容、发布时间,请写出创建表单的执行语句

大模型很快就会给我们创建好了,我们点击一下复制按钮:

在创建前我们先双击一下刚才创建的n8n数据库,双击完成后,可以看到这个数据库变粗了,这是把这个数据库激活,同一时刻只有一个数据库是激活的。

我们点击下图,创建一条查询SQL

将大模型生成的SQL语句粘贴进来,点击图示的按钮执行

执行后报错了,没关系,我们把错误发给大模型来改,右键点击错误内容,选择:Copy Response。

将错误发给大模型,大模型会自动识别并修复好,然后复制大模型新修改好的SQL语句:

再次点击执行,可以看到执行成功了

右键点击n8n数据的Tables,选择:Refresh All,就会看到我们新建的表单:articles

然后展开表单的列,可以看到我们创建的表的内容:

4、创建MySQL的凭证

创建这个凭证是告诉N8N访问MySQL的用户名和密码,访问的是哪个数据库。

在下图输入:mysql,不分大小写,点击继续按钮:

在下图填入我们前面创建数据库的信息,Database:n8n;User:root;Password:123456,点击Save按钮。

出现下面的图示说明连接成功:

终于把我们的数据库所有准备工作都完成了,接下来开始进行工作流设计。

三、N8N搭建数据库工作流

接下来我们在N8N搭建一个使用数据库的工作流,主要实现采集热点新闻,然后存入数据库。

先看下工作流整个流程,这个工作流我做了简化,只保留了基本功能,看上去会简单很多:

一共六个节点,下面开始搭建,每新建好一个节点,记得点击一下执行,要不然后面的节点拿不到数据。

1、打开N8N

2、新建一个工作流

3、添加手动触发节点

什么都不用做,直接添加进来就好。

4、添加RSS节点

RSS国内不是很多,不过也有不少,可以问一下AI,让AI提供一下国内的RSS链接,下面以36kr为例来读取信息。

URL填入:http://www.36kr.com/feed

点击运行一下:

上面的结果代表运行成功。

到主页面可以看到读取到了30条数据:

5、添加过滤节点

读回来的信息我们只需要最近一天内的数据,所以需要将数据筛选过滤一下,只保留一天内的数据:

先把发表时间pubdate用鼠标拖到图示的位置:

然后选择:is after

下面框填入:{{ new Date(Date.now() - 1 * 24 * 60 * 60 * 1000)}}

点击执行:Execute step按钮。没什么变化还是30条,说明我们前面的数据都是今天内的数据。

6、添加限制节点

这个Limit节点的作用就是防止一次性采集的数据太多,加以保护一下。

比如这里象征性的限制在10条,在下图填入:10,点击执行按钮,可以看到前面是30条,输出后变成了10条。

7、添加code节点

为什么添加这个节点,是因为我们抓取的发布时间的格式不满足MySQL的输入要求,所以我们这里加一个Code节点,将这个时间转为满足MySQL的格式要求,可以使用大模型来生成代码,满足我们的需求。

我们先把Code节点添加进来:

把我们的需求全部提取出来,准备好发给大模型的数据。

把它原有的内容全部删掉:

这里注意,要先把下图标注1的选项选择为:Run Once  for Each Item

然后再将左边pubDate的拖进去

准备我们的需求,尽量多的把我们知道的信息发给大模型,比如:

我需要在n8n的code节点,使用的是JavaScript语言,将输入的变量:$json.pubDate ,变量内容是:2025-09-25 15:47:21 +0800,转换为MySQL的DATETIME需要的格式,同时需要保留上游所有原有字段,请写出代码

把大模型生成的代码复制一下,复制到code节点里面(记得把刚才拖进去的那行代码删掉):

点击执行一下,发现会报错,没关系,把错误复制给大模型来修改:

点击运行Execute step按钮,两边都切换到同样的Json格式。

可以看到输出的数据格式已经满足:MySQL DATETIME 所需的 YYYY-MM-DD HH:MM:SS 格式

8、添加MySQL插入数据节点

选择下图在表中插入行选项:

这里默认的MySQL凭证已经填写进去,点击下面的Table,可以看到我们前面新建的数据库:articles。

数据模式这里选择手动指定:

我们要写入四个数据,这里的Add option,我们点击四次,添加四个。

四个选项,每个选择下面的数据库的对应一项:

然后对照数据的字段,依次将左边的对应内容拖到相应位置,如下图:

这里的内容我们使用的是:contentSnippet,因为我发现contentSnippet和content内容一样,但是contentSnippet没有那么多网页代码元素。

然后点击执行按钮。

显示执行成功,我们到数据库看一下:

依次点击:

1、新建查询SQL

2、填入:select * from articles

3、点击执行按钮

4、可以看到数据库内有10条记录

至此我们完成了一个简单的工作流:网络信息采集——>筛选数据——>限制条数——>数据格式整理——>写入数据库,完整的工作流。

这个工作流可以扩展到更多应用,比如:

1、可以使用定时触发节点,定时去执行这个工作流,不需要人来操作了。

2、可以一次性抓取多个平台,然后将数据汇总。

3、可以增加大模型,对采集的内容进行整理、总结、归纳、形成一份报告。

4、整理的内容可以发送邮件、微信、钉钉、飞书.....来通知用户阅读。

5、可以联动电脑的应用,定时查询数据库,只要数据库有更新,就可以唤醒操作电脑的应用程序来处理更多事情。

6、其他你还想到哪些呢?

以上就是今天的分享了。

希望对你有帮助。

本文适合所有正在尝试或计划使用N8N进行开发的朋友。

技术可以变,但底层逻辑永远重要。

如对你有帮助,请关注我,持续分享给懂得思考的您。

Logo

更多推荐