作者|沙丘智库研究团队

来源|沙丘社区(www.shaqiu.cn)


本文节选自沙丘智库:《text-to-SQL工具技术指南》(可前往“沙丘智库”查阅)


基于AI的text-to-SQL工具可以将自然语言问题转换为SQL查询,从而简化非技术人员(如分析师和业务人员)对关系型数据库的访问,有望推动数据访问的民主化,使用户无需深入学习SQL即可进行数据查询,为快速的原型设计、即席分析和数据探索提供了巨大可能性。

学术界对于text-to-SQL的研究已经持续近20年,text-to-SQL在某些场景中已具备实用性,但仍未充分发挥其潜力,关键的局限性依然存在。这些工具在某些基本任务上表现良好,但在许多功能上仍显不足,甚至有些任务完全无法完成,无法满足用户需求。


01

text-to-SQL工具擅长做什么?

第一,将自然语言提示或问题转换为SQL语句并显示。大多数text-to-SQL工具提供分割窗口用户界面,用户可以在输入窗格中输入自然语言问题,生成的SQL代码会显示在输出窗格中。

第二,将生成的SQL查询提交到目标数据库。用户可以将生成的SQL代码复制到数据库查询编辑器中,或者text-to-SQL工具通常与目标数据库的直接客户端连接,用户可以点击“提交”按钮,将查询直接发送到目标数据库。

第三,显示来自数据库的查询响应。text-to-SQL工具通常有一个“结果”窗口,用于显示目标数据库从SQL查询返回的记录集。

第四,与数据库对话,text-to-SQL工具能够记住历史状态。输入和输出窗口通常会随着用户提出新问题和工具生成新的SQL代码而向上滚动。用户可以上下滚动这些窗口,以便与数据库进行“对话”。

02

text-to-SQL工具做不到什么?

当前text-to-SQL工具还无法实现:

第一,当现有数据无法回答用户的问题时通知用户。由于幻觉的存在,当回答问题所需的数据不存在于数据库中时,大语言模型可能会编造一个SQL查询,引用它预测应该存在但实际上不存在的表和列。通过严格的prompt指令,可以使大语言模型回答“我不知道”,防止它胡编乱造,但这并不是百分之百有效的。

第二,主动处理用户自然语言查询中的歧义。当前text-to-SQL工具难以识别具有歧义的自然语言,也无法就含糊不清的性质向用户提供反馈,更无法通过有针对性的问题让用户参与进来,以减少歧义的情况。

第三,理解复杂的数据库模式,可能包含数百个表和数千个列。企业数据库和数据仓库包含数百张表、数千列和数百万(或数千万)行的情况并不少见,text-to-SQL工具难以理解这样一个相对复杂的数据库模式。

第四,以合理的性能生成高级SQL代码,这通常是回答复杂或特定问题所必需的。text-to-SQL无法可靠地生成left/right/inner/full join、聚合函数、子查询、联合、透视、递归查询、字符串处理、日期和时间函数、大小写语句、用户定义函数或临时表。

第五,提供优化整个数据库模式、存储过程或数据库代码的建议。由于text-to-SQL工具无法理解复杂的数据库模式,因此无法提供任何有意义的建议。有些text-to-SQL工具已经可以发现语法错误,有些还可以提供语法建议,但数据库的本地SQL解释器已经可以为了解SQL的用户提供这类帮助。

这意味着期望当前的text-to-SQL工具能够正确处理缺失数据、模糊性、复杂性、优化或管理问题是不现实的。


03

text-to-SQL工具的局限性

text-to-SQL是一个非常复杂的问题,导致当前的工具缺乏企业级功能。以下是text-to-SQL工具存在的局限性:

· 歧义问题:人类与机器之间的准确交流需要精确和具体,但自然语言查询中的歧义难以识别和衡量。text-to-SQL工具可能无法确定用户的自然语言问题是否过于模糊,从而无法生成SQL查询。自然语言查询中的模糊语言包括人类交流中容易产生多种解释的常见短语,如“给我销售的详细情况”;

· 自然语言与数据库模式对象的映射:将自然语言中的名词和动词映射到数据库模式对象(如表和列)时存在普遍的模型性问题,这使得选择正确的表和列变得非常困难;

· 数据值的正确使用:自然语言与数据库值之间的映射模糊不清,导致正确使用数据库中的数据值也是一个难题;

· 语言支持不完整:大语言模型对英语以外的语言支持不完整,且SQL方言的语法差异可能导致大模型产生幻觉;

· 信息/语义不匹配:数据库可能不包含回答自然语言查询所需的数据,但用户可能不知道,text-to-SQL工具也难以选择正确的表和列;

· 模式的复杂性:数据库通常包含大量表和列,且缺乏元数据,使得识别相关表和列变得困难或无法实现。大语言模型的上下文窗口有限,难以处理复杂的模式,而且prompt并不能始终控制大模型的预测性质;

· 查询的复杂性:查询结构越简单,text-to-SQL转换器就越有可能生成准确的SQL,但复杂的查询将带来难以克服的挑战。

* 以上内容节选自沙丘智库《沙丘智库《text-to-SQL工具技术指南》


更多研究(可前往“沙丘智库”查阅)

国资央企DeepSeek大模型应用跟踪报告

银行业DeepSeek大模型应用跟踪报告

大模型应用跟踪月报(2025年1-2月)

2025年中国保险业大模型应用跟踪报告

2024年AI Agent最佳实践报告

2024年“大模型+RAG”最佳实践报告

...

*更多生成式AI研究可前往“沙丘智库”小程序查阅

*有任何需求可咨询客服微信:zimu738