SQL · Postgres

SQL для backend-разработки

Практический курс на PostgreSQL. Настоящий Postgres прямо в браузере, авто-проверка каждого запроса. От «знаю SELECT и JOIN» — до уверенной глубины.

Миссия

Перестать бояться SQL и уверенно писать/читать сложные Postgres-запросы в реальных backend-задачах: агрегации, подзапросы, EXISTS, оконные функции, CTE, а дальше — индексы, EXPLAIN и транзакции.

С чего начать

Шаг 1 · Урок 0

Площадка + диагностика

Познакомься с движком и пройди 8 задач по нарастающей — чтобы понять свой уровень.

✅ Готов
Шаг 2 · Тема 01

SELECT вглубь

Порядок выполнения запроса, точная фильтрация, сортировка, пагинация. 12 упражнений.

✅ Пройдено · 12/12
Шаг 3 · Тема 02

NULL и трёхзначная логика

IS NULL, COALESCE, NULLIF, ловушки <> и NOT IN, NULL в JOIN и агрегатах. 12 упражнений.

✅ Пройдено
Шаг 4 · Тема 04

Агрегация: GROUP BY / HAVING

Твоё слабое место из диагностики: COUNT/SUM/AVG, GROUP BY, WHERE vs HAVING, FILTER. 12 упражнений.

✅ Пройдено
Шаг 5 · Тема 03

Выражения и CASE

CASE (if/else в SQL), приведение типов ::, строки и даты, и разбор WHERE vs FILTER vs CASE. 12 упражнений.

✅ Готов · твой следующий шаг
Карта

Вся программа

13 тем, ≥10 упражнений в каждой. Ядро глубины: агрегации, JOIN, подзапросы, CTE, оконные функции.

📋 Дорожная карта

Справочники (держи под рукой)

Reference

Схема учебной БД

Интернет-магазин: 7 таблиц, связи и «ловушки» в данных.

Reference

Глоссарий

Единые определения терминов на весь курс.

Как открывать

Курс живёт онлайн на GitHub Pages — просто открывай ссылки, ничего запускать не надо. Настоящий Postgres грузится прямо в браузере.

Нужен интернет: движок Postgres (PGlite) подгружается с CDN при первом заходе. Локальный запуск (необязательно, для оффлайна): из папки sql/ — python3 serve.py.