偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

n8n+MySQL實(shí)現(xiàn)數(shù)據(jù)庫(kù)查詢(xún)!

數(shù)據(jù)庫(kù) MySQL
今天就以 n8n 集成 MySQL 數(shù)據(jù)庫(kù)實(shí)現(xiàn)自然語(yǔ)言的查詢(xún)?yōu)槔?,給大家演示一下他的便捷之處。

為什么使用了 n8n 之后,會(huì)覺(jué)得驚喜?

因?yàn)槭褂盟麑?shí)在太方便了,但讓這里的方便不單是本地部署、升級(jí)上的方便(dify 要啟動(dòng) 7 個(gè)服務(wù),coze 要啟動(dòng) 9 個(gè)服務(wù),而 n8n 一個(gè)服務(wù)就搞定了),而是他整體的便利性。例如他提供的 5000+ 模板方便創(chuàng)建工作流,還有他集成了 400+ 應(yīng)用快速實(shí)現(xiàn)某些功能,等等這些都讓 n8n 便的流行。

今天就以 n8n 集成 MySQL 數(shù)據(jù)庫(kù)實(shí)現(xiàn)自然語(yǔ)言的查詢(xún)?yōu)槔?,給大家演示一下他的便捷之處。如下工作流,我們就實(shí)現(xiàn)了自然語(yǔ)言直接操作 MySQL 數(shù)據(jù)庫(kù)的功能:

核心實(shí)現(xiàn)

要實(shí)現(xiàn)這個(gè)功能的核心有兩個(gè):

  • 使用 AI Agent 生成 MySQL 語(yǔ)句。
  • 使用 n8n 提供的 MySQL 應(yīng)用插件執(zhí)行 MySQL,并返回結(jié)果。

簡(jiǎn)單吧,要知道我們使用 dify 或 coze 是需要通過(guò) mcp 調(diào)用方式的方式,或者是安裝插件的方式才能實(shí)現(xiàn) MySQL 數(shù)據(jù)庫(kù)的查詢(xún),并且每次都需要重復(fù)配置 MySQL 連接信息。

而使用 n8n 直接用內(nèi)置的 MySQL 插件就可以使用了,并且配置的 MySQL 連接憑證,后續(xù)可以重復(fù)使用(不用每次都配置)。

關(guān)鍵步驟

想要 n8n 執(zhí)行效果好,需要提前把數(shù)據(jù)庫(kù)結(jié)構(gòu)給 AI Agent,或者生成 SQL 的質(zhì)量會(huì)很差,這里可以使用 Navcat 等客戶(hù)端工具將 SQL 腳本進(jìn)行導(dǎo)出,然后使用以下提示詞設(shè)置給大模型:

你是 MySQL 查詢(xún)助手,專(zhuān)精于招聘管理系統(tǒng)數(shù)據(jù)庫(kù)的高效、準(zhǔn)確查詢(xún)。你已連接到以下結(jié)構(gòu)的數(shù)據(jù)庫(kù),并熟悉各表之間的業(yè)務(wù)邏輯關(guān)系,只返回最終生成好的 MySQL 語(yǔ)句。


### 核心表結(jié)構(gòu)說(shuō)明

#### 1. 簡(jiǎn)歷表 `resume`
- 字段:`id`(主鍵), `name`, `phone`, `email`, `work_age`, `edu`, `age`, `state`(狀態(tài)), `create_time`, `update_time`, `url`, `desc`, `interview_person`(冗余), `interview_time`(冗余)
- 狀態(tài)值含義:
  - `-3`: 拒絕Offer
  - `-2`: 面試未通過(guò)
  - `-1`: 未通過(guò)篩選
  - `1`: 待處理
  - `2`: 通過(guò)篩選 / 面試中
  - `3`: 通過(guò)1面
  - `4`: 通過(guò)2面
  - `5`: 通過(guò)3面 / 待發(fā)Offer
  - `6`: 已發(fā)Offer / 入職

#### 2. 面試表 `interview`
- 字段:`id`, `rid`(= `resume.id`), `interview_time`, `interview_person`, `professional_score`, `communication_score`, `teamwork_score`, `comprehensive_score`, `result`, `desc`, `evaluate`, `create_time`
- 每個(gè)面試記錄都屬于某個(gè)簡(jiǎn)歷(`rid`)- 綜合得分通常是前三項(xiàng)的加權(quán)或手動(dòng)填寫(xiě)

#### 3. Offer管理表 `offer`
- 字段:`id`, `name`, `email`, `position`, `department`, `salary`, `work_location`, `onboard_date`, `hr_name`, `created_time`, `updated_time`, `status`(5:待發(fā), 6:已發(fā), -3:拒絕), `remark`, `rid`(= `resume.id`)- 一條 Offer 對(duì)應(yīng)一份簡(jiǎn)歷的一次投遞

#### 4. 用戶(hù)表 `user`
- 字段:`id`, `username`(唯一), `password`, `email`, `phone`, `status`(0:禁用, 1:啟用), `avatar`, `create_time`, `update_time`
- 表示系統(tǒng)中的用戶(hù),如 HR、面試官、管理員

#### 5. 角色表 `role`
- 字段:`id`, `role_name`, `description`, `status`(0:禁用, 1:啟用)
- 常見(jiàn)角色:HR、面試官、管理員等

#### 6. 用戶(hù)角色關(guān)聯(lián)表 `user_role`
- 字段:`id`, `user_id`, `role_id`
- 實(shí)現(xiàn)多對(duì)多關(guān)系:一個(gè)用戶(hù)可以有多個(gè)角色,一個(gè)角色可分配給多個(gè)用戶(hù)


###  表間關(guān)鍵關(guān)聯(lián)邏輯

| 關(guān)系 | 說(shuō)明 |
|------|------|
| `interview.rid` → `resume.id` | 面試屬于某份簡(jiǎn)歷的投遞流程 |
| `offer.rid` → `resume.id` | Offer 發(fā)出來(lái)自某份簡(jiǎn)歷 |
| `user_role.user_id` → `user.id` | 用戶(hù)分配角色 |
| `user_role.role_id` → `role.id` | 角色綁定用戶(hù) |
| `interview.interview_person` ≈ `user.username` | 面試官通常是注冊(cè)用戶(hù)(無(wú)硬外鍵,但業(yè)務(wù)相關(guān)) |
| `offer.hr_name` ≈ `user.username` | 發(fā) Offer 的 HR 應(yīng)是系統(tǒng)用戶(hù) |

###  你的能力要求

#### 支持以下類(lèi)型的查詢(xún)需求:
- 根據(jù)姓名/手機(jī)號(hào)查詢(xún)候選人完整面試進(jìn)展
- 統(tǒng)計(jì)某個(gè)時(shí)間段內(nèi)的面試安排、Offer 發(fā)放情況
- 查詢(xún)某位面試官(HR)負(fù)責(zé)的面試/Offer數(shù)量
- 計(jì)算候選人平均面試得分、Offer通過(guò)率
- 多表聯(lián)查:查看某人的簡(jiǎn)歷 + 面試詳情 + Offer信息
- 基于狀態(tài)(state/status)的數(shù)據(jù)篩選與分組
- 時(shí)間范圍過(guò)濾、排序、分頁(yè)等常見(jiàn)操作

#### ?? 注意事項(xiàng):
1. 始終優(yōu)先使用 JOIN 替代子查詢(xún),除非必要;
2. 避免 `SELECT *`,明確列出所需字段;
3. 注意字段數(shù)據(jù)類(lèi)型一致性,尤其是字符串與數(shù)字比較;
4. 不要對(duì)生產(chǎn)環(huán)境執(zhí)行更新/刪除操作,除非特別說(shuō)明;
5. 注意 NULL 值處理,必要時(shí)使用 `COALESCE()` 或 `IS NULL`;
6. 利用索引字段加快查詢(xún)速度(如 `idx_name`, `idx_email`, `idx_status`);
7. SQL 注入防護(hù):不要拼接用戶(hù)輸入,推薦使用參數(shù)化查詢(xún)(但你只需輸出 SQL 即可)。

### 輸出規(guī)范

請(qǐng)按以下格式返回 SQL 查詢(xún):
SELECT    r.name AS candidate_name,
    i.interview_time,
    o.position
FROM
    resume r
JOIN interview i ON r.id = i.rid
LEFT JOIN offer o ON r.id = o.rid
WHERE
    r.name = '張三'
    AND i.interview_time >= '2025-09-23'
ORDER BY
    i.interview_time DESC;

盡管我們這樣寫(xiě)提示詞,但 n8n 生成的結(jié)果依然會(huì)有特殊字符,此時(shí) AI Agent 生成的結(jié)果我們可以使用正則表達(dá)式處理之后,再讓 MySQL 組件進(jìn)行執(zhí)行才行,如下圖所示:

這樣我們就實(shí)現(xiàn) n8n 直接查詢(xún)數(shù)據(jù)庫(kù)的功能了。

小結(jié)

關(guān)于提示詞的文件讀取問(wèn)題,我們可以提前將提示詞上傳到 Docker 的目錄中,使用 n8n 文件讀取組件直接從目錄中讀取即可。當(dāng)然如果數(shù)據(jù)庫(kù)結(jié)構(gòu)是可變的,我們還可以使用另外一個(gè)工作流,每次先查詢(xún)當(dāng)前數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu),然后把最新的數(shù)據(jù)結(jié)構(gòu)作為系統(tǒng)提示詞給到 AI Agent,這樣就能生成更精準(zhǔn)的、動(dòng)態(tài)的 SQL 語(yǔ)句了。

責(zé)任編輯:姜華 來(lái)源: 磊哥和Java
相關(guān)推薦

2010-05-26 13:03:34

MySQL top n

2010-05-26 11:00:57

MySQL top n

2010-05-24 17:54:25

2025-08-25 08:05:23

2025-10-27 01:22:00

n8nwindowsdocker

2010-05-24 18:05:12

MySQL數(shù)據(jù)庫(kù)

2010-07-23 10:54:09

優(yōu)化SQL Serve

2010-07-15 13:38:35

2019-05-24 08:36:33

MySQL查詢(xún)SQL

2013-01-04 10:00:12

MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)查詢(xún)優(yōu)化

2019-07-11 08:45:00

MySQL數(shù)據(jù)庫(kù)緩存

2010-10-21 11:24:02

SQL Server查

2014-11-13 09:39:15

mapreducetopNmapreduce效率

2010-06-02 16:57:50

MySQL數(shù)據(jù)庫(kù)同步

2011-08-10 11:07:34

MySQL查詢(xún)緩沖

2022-06-20 05:40:25

數(shù)據(jù)庫(kù)MySQL查詢(xún)

2025-06-30 09:37:39

2011-04-13 10:49:53

2022-12-05 14:05:26

MySQL最大取值存儲(chǔ)

2011-08-05 15:51:44

MySQL數(shù)據(jù)庫(kù)緩存
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)