Personal tool · Source included
Small sessions.
Stronger SQL.
A local practice tool I built to keep analytical SQL skills sharp—with guided exercises, result checking, and a review loop.
01Why I built it
My day-to-day work centers on Qlik Cloud, Python, and Excel. I wanted a repeatable way to keep developing SQL skills beyond the queries I regularly use at work—especially joins, window functions, conditional aggregation, retention, and KPI reporting.
I built this command-line trainer for personal use with AI assistance. The goal is simple: practice a focused problem, get feedback, understand the pattern, and revisit it later.
02How the trainer works
The trainer uses DuckDB to query local synthetic data and pandas to handle tabular results. Its five practice tables cover customers, transactions, merchants, subscriptions, and support tickets.
- Choose a mode. Practice, interview, review, notes, progress, or passed exercises.
- Work through a question. Enter SQL and use hints when needed.
- Check the result. Compare your output with the expected result and inspect feedback.
- Build a review habit. Save learning notes and return to review cards or prior exercises.
Built to run locally
No hosted account, paid service, or API key is required. The trainer generates its sample data and saves your practice history in your local folder.
03Try it yourself
The downloadable package contains the Python source, exercise bank, SQL notes, dependency list, Windows launcher, and setup guide. It starts fresh and does not include my personal progress or scratch queries.
Quick start
Install Python, unzip the download, and open a terminal in the extracted sql-trainer folder. Then run:
python -m pip install -r requirements.txt
python trainer.pyAfter installing dependencies, Windows users can also launch the tool with start_sql_trainer.bat.
Explore the practice modes
python trainer.py --mode practice
python trainer.py --mode practice --topic joins --difficulty medium
python trainer.py --mode review
python trainer.py --mode notes
python trainer.py --mode progress04Validation & scope
The release was checked with Python 3.14, DuckDB 1.5.3, and pandas 3.0.3. All 150 reference solution queries executed successfully against the generated practice data.
This is a personal learning aid. Its exercise bank, hints, and grading are useful for practice, but they are not a formal assessment of SQL proficiency. The exercises use synthetic data and should stay separate from confidential workplace datasets.
The project demonstrates local data tooling, a structured exercise workflow, and a practical way to turn a learning need into a reusable tool.
Keep exploring