0Pricing
Prompt Engineering & LLM Optimization for Developers · Урок

Генерация SQL-запросов на естественном языке

Научитесь формулировать запросы для LLM, чтобы переводить обычные вопросы на английском в корректный SQL, предоставляя контекст схемы, примеры и защитные ограничения.

«Генерация SQL-запросов на естественном языке» — бесплатный урок Prompt Engineering & LLM Optimization for Developers на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Prompt Engineering & LLM Optimization for Developers, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Prompt Engineering & LLM Optimization for Developers содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Text-to-SQL Overview

One of the most practical developer uses of LLMs is turning a plain question like How many orders shipped last week? into a runnable SQL query.

Done well, it lets non-experts query data and speeds up everyday analysis.

The Model Needs the Schema

An LLM cannot guess your table and column names. Always include the relevant schema in the prompt so it references real fields.

Schema:
orders(id, customer_id, status, total, created_at)
customers(id, name, country)

A Basic Text-to-SQL Prompt

Combine schema, the question, and an instruction to return only SQL.

Given the schema above, write a single
Postgres query. Return only SQL.
Question: total revenue per country last month.

Specify the Dialect

SQL dialects differ (Postgres, MySQL, SQLite, BigQuery). State which one you use, or the model may emit functions your database does not support.

Few-Shot Examples Help

Showing one or two question-to-SQL pairs teaches the model your conventions, like how you format dates or name aliases.

Q: customers from Japan
SQL: SELECT * FROM customers WHERE country = 'Japan';
Q: orders over 100
SQL: SELECT * FROM orders WHERE total > 100;

Handling Joins

For questions spanning tables, hint at the relationships in the schema (foreign keys) so the model joins correctly instead of guessing.

-- orders.customer_id references customers.id
SELECT c.country, SUM(o.total)
FROM orders o JOIN customers c
  ON o.customer_id = c.id
GROUP BY c.country;

Guardrail: Read-Only

Never run model-generated SQL with write access. Restrict the connection to SELECT only and reject any query containing DELETE, UPDATE, or DROP.

if (/\b(delete|update|drop|insert)\b/i.test(sql)) {
  throw new Error('Only read queries allowed');
}

Validate Before Executing

Parse or EXPLAIN the query before running it. This catches syntax errors and lets you reject queries touching tables outside an allowlist.

EXPLAIN SELECT ...; -- check plan, no data fetched

Self-Correction Loop

If the query errors, feed the database error message back to the model and ask it to fix the SQL. Two or three attempts usually resolve most mistakes.

The query failed with: column "revenue"
does not exist. Fix the SQL.

Explaining Results

After running the query, you can ask the model to summarize the rows in plain language, closing the loop from question to readable answer.

Limits to Remember

  • Ambiguous questions yield ambiguous SQL.
  • Large schemas may not fit in context, retrieve the relevant tables.
  • Always verify aggregates on critical reports.

Quick Check

Test your understanding of text-to-SQL.

Recap

Text-to-SQL works by giving the model the schema, dialect, and few-shot examples, then validating output. Always run generated SQL read-only, validate before executing, and use a self-correction loop on errors.

Часто задаваемые вопросы

Урок «Генерация SQL-запросов на естественном языке» бесплатный?

Да — полный текст урока «Генерация SQL-запросов на естественном языке» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Prompt Engineering & LLM Optimization for Developers, подпишись на CoddyKit PRO. Курс Prompt Engineering & LLM Optimization for Developers содержит 4 уроков всего.

Чему я научусь в уроке «Генерация SQL-запросов на естественном языке»?

Научитесь формулировать запросы для LLM, чтобы переводить обычные вопросы на английском в корректный SQL, предоставляя контекст схемы, примеры и защитные ограничения. Ты практикуешь Prompt Engineering & LLM Optimization for Developers с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Prompt Engineering & LLM Optimization for Developers?

Предыдущий опыт не требуется. Prompt Engineering & LLM Optimization for Developers на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Генерация SQL-запросов на естественном языке»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Prompt Engineering & LLM Optimization for Developers?

Да. Каждый урок Prompt Engineering & LLM Optimization for Developers включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Генерация и рефакторинг кода
  2. Отладка и генерация тестовых сценариев
  3. Извлечение данных и создание кратких изложений
  4. Генерация SQL-запросов на естественном языке
← Назад к Prompt Engineering & LLM Optimization for Developers