资讯

Text-to-SQL 是什么?用大白话查数据库

2026-11-052 分钟阅读百科
TL;DR文本转 SQL(Text-to-SQL)是把自然语言问题自动转换成数据库查询语句的技术,让不会写 SQL 的人也能用日常语言查询数据,是数据分析智能体的核心能力之一。

文本转 SQL(Text-to-SQL)是把自然语言问题自动转换成 SQL 查询语句的技术。比如业务人员问“上个月华东区销售额最高的五个商品是哪些”,系统自动写出对应的 SQL,在数据库里执行,再把结果返回。它的目标是让不会写代码的人也能直接用日常语言查询数据,是“对话式数据分析”和数据分析智能体的核心能力。

为什么难

把一句话翻译成 SQL,看上去简单,实际有很多难点。要理解数据库的结构:有哪些表、每张表有哪些字段、表之间怎么关联。要把口语映射到字段:“销售额”对应哪个字段,“上个月”怎么换算成日期条件。要处理复杂的查询逻辑:多表连接、嵌套查询、分组统计、排序筛选。而且同一个问题在不同的数据库里,表结构完全不同,模型必须能泛化到从没见过的数据库。

发展历程

早期的自然语言数据库接口依靠人工规则和模板,只能处理固定句式的问题。深度学习兴起后,研究者开始用神经网络学习从问题到 SQL 的映射。2018 年耶鲁大学发布的 Spider 数据集是一个重要里程碑:由 11 名大学生标注,包含 10181 个问题和 5693 条不同的复杂 SQL 查询,覆盖 200 个多表数据库、138 个领域。它的关键设计是训练集和测试集使用不同的数据库,要求模型泛化到新的查询和新的数据库结构,这比之前的数据集难得多,推动了跨领域 Text-to-SQL 的研究。后来又出现了更贴近真实业务、数据更脏的 BIRD 等基准。

大模型出现后,Text-to-SQL 的准确率大幅提升。现在的主流做法是把数据库结构、字段说明和几个示例放进提示词,让大模型生成 SQL,再执行验证,出错就根据报错自动修正。

落地要注意

真实企业的数据库表多、字段命名不规范、业务口径复杂,需要提供清晰的字段注释和业务定义。安全上要限制只读权限,防止生成删除或修改数据的语句;结果要能让用户看到对应的 SQL,方便核对口径。

相关话题与公司