SQL for GenAI¶
Beginner → Intermediate · 6 topics
Most company data lives in SQL databases — orders, customers, tickets, payments. GenAI engineers meet SQL in three places:
- Feeding LLM apps: fetching the customer's orders for a support bot, filtering documents for RAG.
- Measuring LLM apps: LLM call logs, costs, latencies and eval results are tables. SQL answers "which feature costs the most?" or "did prompt v3 beat v2?" in seconds.
- Text-to-SQL: letting users ask questions in plain English and having an LLM write the query — one of the most requested enterprise GenAI features, and one of the riskiest.
All examples use SQLite, which comes with Python — nothing to install, and every query runs. The SQL is standard and works in PostgreSQL and MySQL with small changes (noted where they matter).
| # | Topic | Sub-topics |
|---|---|---|
| 1 | SQL basics with Python | Tables · SELECT · WHERE · ORDER BY · LIMIT · sqlite3 · parameterised queries |
| 2 | Joins & aggregation | GROUP BY · HAVING · INNER / LEFT JOIN · subqueries · NULL traps |
| 3 | Advanced SQL | CTEs · window functions · CASE · dates · JSON columns · indexes · pgvector |
| 4 | Querying LLM logs & evals | Cost per feature · p95 latency · error rates · comparing prompt versions · regressions |
| 5 | Text-to-SQL | Schema in the prompt · few-shot · validating SQL · read-only safety · evaluating accuracy |
| 6 | Text-to-SQL agents | Tools for exploring a database · the agent loop · self-correction · production guardrails |
Where this fits
Read after Python Basics. Pandas comes next — and
pd.read_sql() turns any query from this series into a DataFrame.
Next: Pandas — tables of data in Python.