← Back to selected projects

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.

Built withPython · DuckDB · pandas
Practice bank150 exercises · 5 tables
RunsLocally on your computer
DownloadSource package · ZIP

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.

  1. Choose a mode. Practice, interview, review, notes, progress, or passed exercises.
  2. Work through a question. Enter SQL and use hints when needed.
  3. Check the result. Compare your output with the expected result and inspect feedback.
  4. 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.py

After 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 progress

04Validation & 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

Markets, regression & deep learning

Next project