Skip to content

This is a continuously updated handbook for readers to easily track the latest Text-to-SQL techniques in the literature and provide practical guidance for researchers and practitioners. Official repo for A Survey of Text-to-SQL in the Era of LLMs: Where are we, and where are we going?

Notifications You must be signed in to change notification settings

HKUSTDial/NL2SQL_Handbook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Text-to-SQL Handbook

NL2SQL Handbook

From this repository, you can view the 📚latest advancements in Text-to-SQL (a.k.a NL2SQL). This handbook corresponds to our survey paper: 📖A Survey of Text-to-SQL in the Era of LLMs: Where are we, and where are we going?. We also provide tutorial slides to summarize the key points of this survey. Based on language model trends, we've created a river diagram of Text-to-SQL methods to trace the field's evolution.

If you are a novice, don't worry—we have prepared a practical guide for you, covering a wide range of foundational materials and related applications. 📧If we missed any interesting work, connect with us.

@article{liu2024survey,
  title={A Survey of NL2SQL with Large Language Models: Where are we, and where are we going?},
  author={Liu, Xinyu and Shen, Shuyu and Li, Boyan and Ma, Peixian and Jiang, Runzhi and Zhang, Yuxin and Fan, Ju and Li, Guoliang and Tang, Nan and Luo, Yuyu},
  journal={arXiv preprint arXiv:2408.05109},
  year={2024}
}

🧭 Text-to-SQL Introduction

Translating users' natural language queries (NL) into SQL queries can significantly reduce barriers to accessing relational databases and support various commercial applications. The performance of Text-to-SQL has been greatly improved with the emergence of language models (LMs). In this context, it is crucial to assess our current position, determine the Text-to-SQL solutions that should be adopted for specific scenarios by practitioners, and identify the research topics that researchers should explore next.

📈 Text-to-SQL Lifecycle

  • Model: Text-to-SQL translation techniques that tackle not only NL ambiguity and under-specification, but also properly map NL with database schema and instances;

  • Data: From the collection of training data, data synthesis due to training data scarcity, to Text-to-SQL benchmarks;

  • Evaluation: Evaluating Text-to-SQL methods from multiple angles using different metrics and granularities;

  • Error Analysis: analyzing Text-to-SQL errors to find the root cause and guiding Text-to-SQL models to evolve.

🤔 Where Are We?

We categorize the challenges of Text-to-SQL into five levels, each addressing specific hurdles. The first three levels cover challenges that have been or are currently being addressed, reflecting the progressive development of Text-to-SQL. The fourth level represents the challenges we aim to tackle in the LLMs stage, while the fifth level outlines our vision for Text-to-SQL system in the next five years.

We describe the evolution of Text-to-SQL solutions from the perspective of language models, categorizing it into four stages. For each stage of Text-to-SQL, we analyze the changes in target users and the extent to which challenges are addressed.

🧩 Module-based Text-to-SQL Methods

We summarize the key modules of Text-to-SQL solutions utilizing the language model.

  • Pre-processing serves as an enhancement to the model’s inputs in the Text-to-SQL parsing process. You can get more details from this chapter: Pre-Processing
  • Text-to-SQL translation methods constitute the core of the Text-to-SQL solution, responsible for converting input natural language queries into SQL queries. You can get more details from this chapter: Text-to-SQL Translation Methods
  • Post-processing is a crucial step to refine the generated SQL queries, ensuring they meet user expectations more accurately. You can get more details from this chapter: Post-Processing

📚 Text-to-SQL Survey & Tutorial

  1. A Survey of Text-to-SQL in the Era of LLMs: Where are we, and where are we going?
  2. A Survey on Employing Large Language Models for Text-to-SQL Tasks.
  3. Next-generation database interfaces: A survey of LLM-based Text-to-SQL.
  4. Large Language Model Enhanced Text-to-SQL Generation: A Survey.
  5. From Natural Language to SQL: Review of LLM-based Text-to-SQL Systems.
  6. Natural language interfaces for tabular data querying and visualization: A survey.
  7. Natural Language Interfaces for Databases with Deep Learning.
  8. A survey on deep learning approaches for text-to-SQL.
  9. Recent Advances in Text-to-SQL: A Survey of What We Have and What We Expect.
  10. A Deep Dive into Deep Learning Approaches for Text-to-SQL Systems.
  11. State of the Art and Open Challenges in Natural Language Interfaces to Data.
  12. Natural language to SQL: Where are we today?

📰 Text-to-SQL Paper List

  1. Alpha-SQL: Zero-Shot Text-to-SQL using Monte Carlo Tree Search
  2. NL2SQL-BUGs: A Benchmark for Detecting Semantic Errors in NL2SQL Translation.
  3. Sphinteract: Resolving Ambiguities in NL2SQL Through User Interaction.
  4. OpenSearch-SQL: Enhancing Text-to-SQL with Dynamic Few-shot and Consistency Alignment.
  5. Reliable Text-to-SQL with Adaptive Abstention.
  6. SNAILS: Schema Naming Assessments for Improved LLM-Based SQL Inference.
  7. Automated Validating and Fixing of Text-to-SQL Translation with Execution Consistency.
  8. Grounding Natural Language to SQL Translation with Data-Based Self-Explanations.
  9. AID-SQL: Adaptive In-Context Learning of Text-to-SQL with Difficulty-Aware Instruction and Retrieval-Augmented Generation.
  10. CLEAR: A Parser-Independent Disambiguation Framework for NL2SQL.
  11. CHASE-SQL: Multi-Path Reasoning and Preference Optimized Candidate Selection in Text-to-SQL.
  12. Spider 2.0: Evaluating Language Models on Real-World Enterprise Text-to-SQL Workflows.
  13. ROUTE: Robust Multitask Tuning and Collaboration for Text-to-SQL.
  14. Confidence Estimation for Error Detection in Text-to-SQL Systems.
  15. SQLord: A Robust Enterprise Text-to-SQL Solution via Reverse Data Generation and Workflow Decomposition.
  16. DBCopilot: Scaling Natural Language Querying to Massive Databases.
  17. Boosting Text-to-SQL through Multi-grained Error Identification.
  18. Gen-SQL: Efficient Text-to-SQL By Bridging Natural Language Question And Database Schema With Pseudo-Schema.
  19. Utilising Large Language Models for Adversarial Attacks in Text-to-SQL: A Perpetrator and Victim Approach.
  20. You Only Read Once (YORO): Learning to Internalize Database Knowledge for Text-to-SQL.
  21. SQLong: Enhanced NL2SQL for Longer Contexts with LLMs.
  22. EllieSQL: Cost-Efficient Text-to-SQL with Complexity-Aware Routing.
  23. Reward-SQL: Boosting Text-to-SQL via Stepwise Reasoning and Process-Supervised Rewards.
  24. SQL-R1: Training Natural Language to SQL Reasoning Model By Reinforcement Learning.
  25. Is Long Context All You Need? Leveraging LLM's Extended Context for NL2SQL.
  26. Arctic-Text2SQL-R1: Simple Rewards, Strong Reasoning in Text-to-SQL.
  27. Corrective Self-Consistency in Text-to-SQL via Reinforcement Learning.
  28. SQLForge: Synthesizing Reliable and Diverse Data to Enhance Text-to-SQL Reasoning in LLMs.
  29. Think2SQL: Reinforce LLM Reasoning Capabilities for Text2SQL.
  30. Distill-C: Enhanced NL2SQL via Distilled Customization with LLMs.
  31. Reasoning-SQL: Reinforcement Learning with SQL Tailored Partial Rewards for Reasoning-Enhanced Text-to-SQL.
  32. OmniSQL: Synthesizing High-quality Text-to-SQL Data at Scale.
  33. SQL-Factory: A Multi-Agent Framework for High-Quality and Large-Scale SQL Generation.
  34. Text2SQL is Not Enough: Unifying AI and Databases with TAG.
  35. Automatic database description generation for Text-to-SQL.
  36. MCTS-SQL: An Effective Framework for Text-to-SQL with Monte Carlo Tree Search.
  37. SQL-o1: A Self-Reward Heuristic Dynamic Search Method for Text-to-SQL.
  38. FEATHER-SQL: A Lightweight NL2SQL Framework with Dual-Model Collaboration Paradigm for Small Language Models.
  39. FI-NL2PY2SQL: Financial Industry NL2SQL Innovation Model Based on Python and Large Language Model.
  40. FGCSQL: A Three-Stage Pipeline for Large Language Model-Driven Chinese Text-to-SQL.
  41. Transforming Medical Data Access: The Role and Challenges of Recent Language Models in SQL Query Automation.
  42. The Dawn of Natural Language to SQL: Are We Fully Ready?
  43. Text-to-SQL Empowered by Large Language Models: A Benchmark Evaluation.
  44. Interleaving Pre-Trained Language Models and Large Language Models for Zero-Shot NL2SQL Generation.
  45. Generating Succinct Descriptions of Database Schemata for Cost-Efficient Prompting of Large Language Models.
  46. ScienceBenchmark: A Complex Real-World Benchmark for Evaluating Natural Language to SQL Systems.
  47. CodeS: Towards Building Open-source Language Models for Text-to-SQL.
  48. FinSQL: Model-Agnostic LLMs-based Text-to-SQL Framework for Financial Analysis.
  49. PURPLE: Making a Large Language Model a Better SQL Writer.
  50. METASQL: A Generate-then-Rank Framework for Natural Language to SQL Translation.
  51. Archer: A Human-Labeled Text-to-SQL Dataset with Arithmetic, Commonsense and Hypothetical Reasoning.
  52. Synthesizing Text-to-SQL Data from Weak and Strong LLMs.
  53. Understanding the Effects of Noise in Text-to-SQL: An Examination of the BIRD-Bench Benchmark.
  54. I Need Help! Evaluating LLM’s Ability to Ask for Users’ Support: A Case Study on Text-to-SQL Generation.
  55. PTD-SQL: Partitioning and Targeted Drilling with LLMs in Text-to-SQL.
  56. Improving Retrieval-augmented Text-to-SQL with AST-based Ranking and Schema Pruning.
  57. Data-Centric Text-to-SQL with Large Language Models.
  58. Research and Practice on Database Interaction Based on Natural Language Processing
  59. XiYan-SQL: A Multi-Generator Ensemble Framework for Text-to-SQL.
  60. Structure Guided Large Language Model for SQL Generation.
  61. A Plug-and-Play Natural Language Rewriter for Natural Language to SQL.
  62. RSL-SQL: Robust Schema Linking in Text-to-SQL Generation.
  63. In-Context Reinforcement Learning based Retrieval-Augmented Generation for Text-to-SQL.
  64. TrustSQL: Benchmarking Text-to-SQL Reliability with Penalty-Based Scoring.
  65. LAIA-SQL: Enhancing Natural Language to SQL Generation in Multi-Table QA via Task Decomposition and Keyword Extraction
  66. Research on Large Model Text-to-SQL Optimization Method for Intelligent Interaction in the Field of Construction Safety.
  67. SQLh-GEN: Bridging the Dialect Gap for Text-to-SQL Via Synthetic Data And Model Merging.
  68. Grounding Natural Language to SQL Translation with Data-Based Self-Explanations.
  69. Towards Optimizing SQL Generation via LLM Routing.
  70. E-SQL: Direct Schema Linking via Question Enrichment in Text-to-SQL.
  71. DB-GPT: Empowering Database Interactions with Private Large Language Models.
  72. The Death of Schema Linking? Text-to-SQL in the Age of Well-Reasoned Language Models.
  73. CHESS: Contextual Harnessing for Efficient SQL Synthesis.
  74. PET-SQL: A Prompt-Enhanced Two-Round Refinement of Text-to-SQL with Cross-consistency.
  75. CoE-SQL: In-Context Learning for Multi-Turn Text-to-SQL with Chain-of-Editions.
  76. AMBROSIA: A Benchmark for Parsing Ambiguous Questions into Database Queries.
  77. Text-to-SQL Calibration: No Need to Ask—Just Rescale Model Probabilities.
  78. Few-shot Text-to-SQL Translation using Structure and Content Prompt Learning.
  79. CatSQL: Towards Real World Natural Language to SQL Applications.
  80. DIN-SQL: Decomposed In-Context Learning of Text-to-SQL with Self-Correction.
  81. Data Ambiguity Strikes Back: How Documentation Improves GPT's Text-to-SQL.
  82. ACT-SQL: In-Context Learning for Text-to-SQL with Automatically-Generated Chain-of-Thought.
  83. Selective Demonstrations for Cross-domain Text-to-SQL.
  84. RESDSQL: Decoupling Schema Linking and Skeleton Parsing for Text-to-SQL.
  85. Graphix-T5: Mixing Pre-trained Transformers with Graph-Aware Layers for Text-to-SQL Parsing.
  86. Improving Generalization in Language Model-based Text-to-SQL Semantic Parsing: Two Simple Semantic Boundary-based Techniques.
  87. G3R: A Graph-Guided Generate-and-Rerank Framework for Complex and Cross-domain Text-to-SQL Generation.
  88. Importance of Synthesizing High-quality Data for Text-to-SQL Parsing.
  89. Know What I don’t Know: Handling Ambiguous and Unknown Questions for Text-to-SQL.
  90. C3: Zero-shot Text-to-SQL with ChatGPT
  91. MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL.
  92. SQLformer: Deep Auto-Regressive Query Graph Generation for Text-to-SQL Translation.

📊 Text-to-SQL Benchmark

We create a timeline of the benchmark's development and mark relevant milestones. You can get more details from this chapter: 📊 Benchmark

🎯 Where Are We Going?

  • 🎯Solve Open Text-to-SQL Problem
  • 🎯Develop Cost-effective Text-to-SQL Methods
  • 🎯Make Text-to-SQL Solutions Trustworthy
  • 🎯Text-to-SQL with Ambiguous and Unspecified NL Queries
  • 🎯Adaptive Training Data Synthesis

📖 Catalog for Our Survey

You can get more information from our subsection. We introduce representative papers on related concepts:

💾 Practical Guide for Novice

📊 How to get data:

  • We collect Text-to-SQL benchmark features and download links for you. You can get more details from this chapter: Benchmark
  • The analysis code for benchmarks is available in the src/dataset_analysis directory. Benchmark analysis reports can be found in the report/ directory.

🛠️ How to build an LLM-based Text-to-SQL model:

  • Litgpt Repository Link

    This repository offers access to over 20 high-performance large language models (LLMs) with comprehensive guides for pretraining, fine-tuning, and deploying at scale. It is designed to be beginner-friendly with from-scratch implementations and no complex abstractions.

  • LLaMA-Factory Repository Link Unified Efficient Fine-Tuning of 100+ LLMs. Integrating various models with scalable training resources, advanced algorithms, practical tricks, and comprehensive experiment monitoring tools, this setup enables efficient and faster inference through optimized APIs and UIs.

  • Fine-tuning and In-Context learning for BIRD-SQL benchmark Repository Link

    A tutorial for both Fine-tuning and In-Context Learning is provided by the BIRD-SQL benchmark.

🔎How to evaluate your model:

We collect NL2SQL evaluation metrics for you. You can get more details from this chapter: Evaluation

  • NLSQL360 Repository Link

    NL2SQL360 is a testbed for fine-grained evaluation of NL2SQL solutions. Our testbed integrates existing NL2SQL benchmarks, a repository of NL2SQL models, and various evaluation metrics, which aims to provide an intuitive and user-friendly platform to enable both standard and customized performance evaluations.

  • Test-suite-sql-eval Repository Link

    This repo contains a test suite evaluation metric for 11 text-to-SQL tasks. It is now the official metric of Spider, SParC, and CoSQL, and is also now available for Academic, ATIS, Advising, Geography, IMDB, Restaurants, Scholar, and Yelp (building on the amazing work by Catherine and Jonathan).

  • BIRD-SQL-Official Repository Link

    It is now the official tool of BIRD-SQL. It is the first tool to propose VES and give an official test suite.

🗺️ Roadmap and Decision Flow

You can get some inspiration from the Roadmap and Decision Flow.

📱 Text-to-SQL Related Applications:

  • Chat2DB: AI-driven database tool and SQL client, The hottest GUI client, supporting MySQL, Oracle, PostgreSQL, DB2, SQL Server, DB2, SQLite, H2, ClickHouse, and more.
  • DB-GPT: AI Native Data App Development framework with AWEL(Agentic Workflow Expression Language) and Agents.
  • Postgres.new: In-browser Postgres sandbox with AI assistance.

📮Connect with Us

Please feel free to contact us if we missed any interesting work.

📧 xliu371[at]connect.hkust-gz.edu.cn

About

This is a continuously updated handbook for readers to easily track the latest Text-to-SQL techniques in the literature and provide practical guidance for researchers and practitioners. Official repo for A Survey of Text-to-SQL in the Era of LLMs: Where are we, and where are we going?

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages