5000字教程:用AI实时查询数据库,自动生成可视化图表
还在为复杂的数据查询而头疼吗?想象一下,用AI实时对话数据库,一键生成专业图表!今天,这份超详细的5000字教程,将手把手教你利用Dify工作流,结合AI技术,从SQL基础到多表关联,再到知识库精准查询,最终通过Echarts实现自动可视化,彻底提升你的数据分析效率。

如今,稍有规模的企业都离不开数据库,但让业务人员手动编写SQL取数,往往不现实——许多新手甚至觉得SQL比Python更难入门。
现在,问题迎刃而解!我们可以借助AI自动完成数据库查询,并同步生成文字洞察与可视化图表。
此前,我曾介绍通过MCP让Cursor查询并修改数据库表结构,但该方法目前稳定性不足,难以投入实际工作。
至于将Excel直接丢给AI分析的方式,同样存在两大硬伤:1. 严重的数据安全隐患;2. 结果准确率极低。
最佳解决方案是什么?答案是在本地部署工作流,直连数据库,通过执行AI生成的SQL代码进行查询,确保最高准确率。
若数据库体量庞大,如何让AI清晰掌握表结构并生成精准代码?答案是:构建专属的数据库表结构知识库。
以下为完整实战教程目录:

核心流程与效果:
用户提出查询需求后,AI将自动检索知识库中的表结构,据此生成SQL语句并执行。随后,系统调用Echarts图表能力,结合数据科学Agent,最终输出图文并茂的可视化分析结果。

文末附工作流DSL文件获取方式。接下来,我们从数据准备开始。
本次演示使用一个包含销售表、产品表、地区表的数据库,支持复杂多表查询,高度贴合实际业务场景。

新增节点
在Dify中实现SQL查询,逻辑分两步:1. 用AI生成SQL代码;2. 执行SQL代码。直接搜索“database”工具,其中已集成Text to SQL与SQL Execute两大功能。


点击授权,按以下格式输入数据库地址与账号密码(以MySQL为例):mysql+pymysql://root:8455be@152.12.12.12:3306/bgggtest
接下来,我们正式开启SQL查询实战。
模块一:SQL查询为清晰展示工作流构建逻辑,我将逐步演示。这也正是从零搭建AI工作流的精髓:小步快跑,持续测试。
坐稳扶好,我们马上出发!
假设SQL查询分为三个等级...
第1级 青铜:指定表格与字段查询
这是最简单场景。如图,直接告知AI需查询的表名与字段。

获得如下结果,此步旨在验证AI运行是否正常。

显然,我们不可能每次查询都手动指定表格与字段(否则何必用AI?)。下一步是将整个数据库表结构导出给AI。
如何获取表结构?推荐使用Navicat:连接数据库后,右键选择“转储SQL文件-仅结构”。


即可得到如下建表语句:

随后,只需将提示词嵌入SQL生成环节即可,此处不再赘述。
测试验证数据准确性:统计每日销售额。


至此,我们已能应对多数查询场景。但实际业务中,数据表往往浩如烟海、结构复杂,不可能将所有表结构全塞进提示词——那会撑爆上下文。
怎么办?
第3级 黄金:将表结构存入知识库,调用RAG查询
最佳方案是:让AI在查询时自动检索所需表结构。下面开始构建。
新建数据库表结构知识库
在Dify创建知识库,如图:

将此前导出的表结构文件存入TXT并上传。

知识库配置关键:1. 通常保持默认即可,注意右侧分块结果,确保一个Chunk对应一张表。

2. 索引方式务必选择“高质量”,否则可能无法命中结果。如图所示,左侧“经济”模式无法击中,右侧“高质量”则精准匹配。


3. 检索设置中的Top K可根据数据复杂度适当调高,通常一次查询涉及3-5张表关联。若超出,或许就不适合用AI处理了。

新增知识检索节点
回到工作流,在起点后添加知识检索节点。这意味着用户对话时,系统会先根据需求从知识库查找相关表结构,再喂给AI。

由于需使用检索结果,我们引入LLM大模型节点生成SQL。只需设置好提示词,并将检索到的表结构通过上下文传入即可:

完整提示词示例:

注意:大模型生成的SQL常含换行符等需清洗,此处简单添加Python代码节点处理。

当前工作流与对话效果如图所示,至此完成首个模块:text2SQL。

升级测试:多表查询——获取各地区销售数据。
生成的SQL代码:

最终运行结果(节选):

结果准确无误✅

番外:尝试调用Agent能力
我曾测试用Dify的Agent执行SQL查询,逻辑是让Agent自主调用工具,从而简化工作流。但或许存在Bug或兼容问题,始终未能成功。尽管工作流看似简化,实际工作量未减,且依赖大模型工具调用能力,不确定性较高,不建议用于实际业务。感兴趣者可自行尝试。
模块二:可视化图表接下来,我们实现可视化图表部分。
1.0 青铜级
添加Echarts图表生成插件。

该插件目前支持三种最常用的图表:折线图、柱状图、饼图。

继续从零构建工作流。起初,我不熟悉组件用法,故先测试图表逻辑:随意填入数据,如图。

得到图表后,便理解组件参数如何填写:标题对应图表标题;数据对应Y轴数值;X轴对应标签或分类。

柱状图与饼图数据结构相同:


测试后,核心问题转化为:如何将SQL查询结果转为Echarts所需的数据结构?两种方案:
方法一:使用Dify内置工具参数提取器。适用于数据量较小的场景,其本质依赖AI提取,上下文简短时更可靠。

参考提示词: 任务:从JSON数据中提取参数,用于生成Echarts图表。

将提取的数据传递给图表节点引用即可,如图:

方法二:AI编程,编写脚本从JSON提取数据。适用于数据量大的场景,代码处理更稳定。
首先需调整:SQL Execute节点的输出格式原为Markdown,虽便于直接呈现表格,但不利数据解析。改为JSON格式。

查看该节点输出的JSON格式(以查询2021年5月每日销售为例,节选示意):

基于此,可让Deepseek V3编写Python脚本处理数据。

大家也可直接使用我的代码:

此处难点在于SQL输出字段名不确定,故不能直接用如item['日期'],而需改用数字索引如list(item.values())[0]。同时,标题需另设AI节点生成,流程较复杂。若非流程高度固定,不建议此方法。
至此,我们初步完成了可视化模块。为丰富结果,可添加数据科学家AI节点,生成定性文字分析。参考提示词:

如此,输出便初具雏形。

但新问题出现:前述案例仅针对折线图,难道需为柱状图、饼图等重复流程?未来图表类型增多将不胜其烦。2.0 白银级
我们需在前端添加图表类型判断节点,让AI自动选择并呈现合适的可视化形式。
如何实现?参数提取器本身基于AI运行,我们可为其新增ChartType参数,并在指令中明确要求与示例,如图:

随后,在参数提取器后添加条件分支,每个图表类型对应一个分支,并引用相同参数。

为统一AI回复,需新增会话变量chart_var。在每个图表节点后添加变量赋值节点,将对应图表结果赋予该变量,最终回复部分直接引用chart_var即可。

最终效果令人满意。
准备好彻底改变你的数据分析方式了吗?立即动手实践本教程,解锁AI驱动的高效工作流!如需获取完整工作流DSL文件,请关注微信公众号【饼干哥哥AGI】,回复“数据库AI”获取。分享你的实战成果,一起探索智能数据分析的无限可能!
本文由人人都是产品经理作者【饼干哥哥】,微信公众号:【饼干哥哥AGI】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。
题图来自Unsplash,基于 CC0 协议。
相关问答
零基础如何学习数据库?
1、零基础入门数据库,建议首选《数据库系统概念》作为起步教材,因其系统全面,涵盖数据模型、关系模型、基于对象的数据库等核心内容。
不需要操作系统的支持B)数据库技术的根本目_作业帮
2:下列叙述正确的是______.A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目题目2:下列叙述正确的是______.A)数据库系统是一个独立...
51自学网全部教程_会计学堂
[回答]51自学网提供前端开发、后端开发、移动开发、数据库等全领域实战教程,助你掌握前沿技术,快速提升技能。前端开发教...
我要开发一个小型的数据库应该怎样做?
方法如下:第一步,官网下载MySQL并按指引安装。第二步,配置环境变量并启动服务。第三步,创建数据库,开始构建。
纯小白想学数据库,可以按照什么样的顺序学?
若你完全是新手,尚未掌握编程语言与数据库,这恰是一张白纸,可自由绘制蓝图。若目标为从事IT编程,建议从基础SQL与一种数据库(如MySQL)入手,循序渐进。
怎样建立一个数据库?
1. 建立数据库需经过备份、架构设计、参数设置等步骤,是一个系统化工程。2. 首先明确数据模型,再进行物理设计...
wps数据库怎么使用?
WPS表格的数据库功能可高效管理大量数据,包括输入、修改、查询、筛选、排序和统计。基本步骤:1...
word建立数据库教程?
1. 单击“开始”→”所有程序“→”Microsoft Office“→”Microsoft Access“,打开Access软件。2...
学数据库什么最简单,且有用?
精通一门数据库虽难,但简单应用可从微软SQL Server起步,因其人性化、易上手,属轻量级选择。
数据库技术的应用领域有哪些?
数据库应用广泛,从家庭、企业到政府机构皆需其存储数据。传统上大量用于商务领域,如证券、银行等,如今更渗透至各行各业。