Page 345 - 《软件学报》2026年第2期
P. 345
824 软件学报 2026 年第 37 卷第 2 期
表 2 总结了典型的基于深度学习的自然语言与 SQL 转化方法, 其中模型的输入涉及模型所接受的输入类型;
输出约束指系统为确保输出 SQL 语句的正确性而施加的约束条件; 模式链接指方法是否将数据库模式作为辅助
信息纳入模型输入; 学习模型指 Text2SQL 模型在训练阶段采用的学习策略. 评测数据集指用于训练和评估 Text2SQL
模型的数据集. WikiSQL [15] 和 Spider [49] 提供了大规模多领域的 Text2SQL 数据集, 使得 Text2SQL 训练和测试标
准化.
表 2 基于深度学习的自然语言与 SQL 转化方法
方法 模型输入 输出约束 模式链接 学习模型 评测数据集
Seq2SQL [15] 单词 序列 无 强化学习 WikiSQL
SQLNet [16] 单词 草图 无 - WikiSQL
IncSQL [17] 单词 语法 无 - WikiSQL
TypeSQL [18] 单词 草图 有 - WikiSQL
SyntaxSQLNet [41] 单词 草图 无 - Spider
GNN [19] 模式图 语法 无 - Spider
Global-GNN [20] 模式图 语法/排序 无 - Spider
SQLova [28] 序列 草图 无 迁移学习 WikiSQL
IRNet [34] 序列 语法 有 迁移学习 Spider
X-SQL [27] 序列 草图 无 迁移学习 WikiSQL
RAT-SQL [21] 模式图 语法 有 迁移学习 Spider
ValueNet [46] 序列 语法 有 迁移学习 Spider
HydraNet [35] 序列 草图 无 迁移学习 WikiSQL
SmBoP [42] 模式图 语法 有 迁移学习 Spider
RYANSQL [33] 序列 草图 无 迁移学习 Spider
ETA [36] 序列 序列 有 迁移学习 Spider
2.1.2 基于大语言模型方法
基于大语言模型的 Text2SQL 方法根据方法的实现方式, 分为基于提示词工程的方法和基于微调的方法.
基于提示词工程的方法通过设计特定的提示词 (prompt) 来引导大语言模型生成目标 SQL 查询. 这类方法
无需对模型进行额外的训练, 而是利用大语言模型在预训练阶段学到的知识和推理能力, 通过自然语言提示词
将任务描述转化为 SQL 查询. 基于提示词工程的方法依据其思考深度和对问题的分解能力可以分为以下 4 个
类型.
● 朴素方法直接使用简单的提示词将自然语言问题与数据库模式结合, 输入到大语言模型中生成 SQL 查询.
一些研究 [50,51] 评估了零样本下的 LLM 在 Text2SQL 任务上的性能, 他们评估了不同的提示词和不同的 LLM 在
Text2SQL 任务上的性能. 结果表明 prompt 对于性能至关重要. 一些方法针对零样本下的方法进行改进, 提出了小
样本的朴素方法, 他们提供了少量的样例来触发 LLM 以生成更准确的 SQL.
● 分解方法通过将复杂问题拆解为多个子问题, 逐步生成 SQL 查询. 一些方法 [52−54] 将 Text2SQL 任务分解, 先
将问题分解为选择条件、聚合函数和表连接等子任务, 再分别生成对应的 SQL 片段, 最后组合成完整查询. 还有
一些方法 [55,56] 将问题分解, 他们将用户的问题分解成不同的子问题, 然后通过解决这些子问题生成子 SQL, 再合成
最终的 SQL.
● 推理增强方法 [57−59] 通过引入推理步骤或中间表示, 帮助模型更好地理解问题和生成 SQL 查询. 例如, 在提
示词中加入逻辑推理链或中间结果, 引导模型逐步推导出正确的 SQL 语句. 这些方法通过思维链的提示词方法引
导 LLM 一步一步地进行全面的推导过程.
● 执行优化方法 [54,59,60] 通过结合 SQL 执行结果对生成的查询进行反馈和修正. C3 [61] 将生成的 SQL 语句在数
据库中执行, 并根据执行结果调整提示词或重新生成查询.

