Курс SQL — начни с пролога
Первый урок: Как здесь учиться
Интерактивный курс SQL · 12 глав · 77 уроков
Пиши SQL на живой базе
От первого SELECT до оконных функций, EXPLAIN и финального аналитического отчёта.
Каждый запрос выполняется прямо в уроке, на настоящей базе, а не просто показан на картинке. Ещё есть квизы, задачи «почини запрос» и гейты из тренажёра.
- живой SQL в каждом уроке
- задачи с собеседований
- сертификат и экзамен
PostgreSQL · MySQL · ClickHouse
SELECT c.name, count(*) AS orders, sum(o.total) AS revenue FROM orders o JOIN customers c ON c.id = o.customer_id WHERE o.status = 'paid' GROUP BY c.name ORDER BY revenue DESC LIMIT 4;
| name | orders | revenue |
|---|---|---|
| Мурка | 4 | 12 480 |
| Барсик | 3 | 9 120 |
| Рыжик | 3 | 7 640 |
| Сима | 2 | 5 300 |
Результат
Один вопрос — шесть уровней SQL
Вопрос «Кто приносит магазину деньги?» не меняется. Меняется SQL, которым ты на него отвечаешь.
SELECT id, customer_id, total FROM orders WHERE status = 'paid' ORDER BY total DESC LIMIT 3;
результат
| id | customer_id | total |
|---|---|---|
| 1042 | 7 | 4 900 |
| 1017 | 3 | 4 100 |
| 1099 | 7 | 3 780 |
Глава 2 — фильтры, сортировка, ограничение выборки.
Механика
Из чего собран урок
Не видео и не конспект. Шесть видов блоков: теория есть в каждом уроке, остальное ставится под тему — живой запрос, схема, квиз, «почини запрос», а глава закрывается задачей из тренажёра.
Теория
Короткий разбор одной идеи: без воды и советов «прочитайте документацию».
Схема
Схема связи или операции: что на самом деле происходит со строками.
Живой SQL
Запрос к настоящей базе выполняется прямо на странице. Меняй его и запускай снова.
Квиз
Вопрос на понимание, а не на память: почему результат именно такой.
Почини запрос
SQL-запрос с ошибкой, который надо исправить, — самый честный способ проверить себя.
Задача на допуск
Глава заканчивается задачей из тренажёра, а не галочкой «прочитано».
Сигнал «Котомаркет» · Хранилище-9 · 2184
База, которую ты восстанавливаешь сам
От интернета старой Земли уцелел лишь один фрагмент: база магазина «Котомаркет». С каждой главой открывается новый уровень доступа к архиву: сначала одна таблица, потом связи, а затем вся система. В последнем блоке тебя ждёт послание К.
Сюжет не заменяет обучение, а задаёт порядок тем. Каждый уровень допуска соответствует реальному этапу изучения SQL.
Программа
Пять уровней допуска
12 глав — не просто список из 12 равнозначных пунктов, а пять ступеней: доступ к данным → связи и расчёты → аналитический SQL → управление системой → финальный отчёт.
ACCESS 01
3 главы · 16 уроков · 4 ч 21 минПолучить доступ к данным
Что такое база, как устроена таблица и как задать ей точный вопрос
Ты впервые разговариваешь с базой — и она отвечает ровно то, что ты просил.
Старт в SQL
Выполнишь первый запрос к настоящей базе — в браузере, без установки чего-либо.
Базы данных без тумана
Перестанешь путать базу и СУБД и научишься читать схему из пяти таблиц как карту.
SELECT: достаём нужные данные
Достанешь из таблицы ровно те строки, которые нужны: фильтры, диапазоны, сортировка, CASE.
Здесь заканчивается бесплатная часть
К этому моменту ты уже попробовал всё, что есть в курсе: живой SQL на настоящей базе, схемы, квизы, «почини запрос» и задачу на допуск.
- понимаешь, что такое таблица, ключ и схема
- пишешь SELECT с фильтрами и сортировкой
- правильно работаешь с NULL и не путаешься в трёхзначной логике
- уже прошёл первый мастер-чек в тренажёре
Дальше
Агрегаты, JOIN, CTE, оконные функции, DDL, EXPLAIN и капстоун — вся система «Котомаркета». По одному уроку в каждой платной главе остаётся открытым: ещё 9 уроков можно прочитать без оплаты.
ACCESS 02
4 главы · 29 уроков · 15 ч 49 минСвязать и посчитать
Агрегаты, JOIN, подзапросы и CTE, строки и даты
Из отдельных строк появляется анализ: связи собираются, тысячи строк сворачиваются в метрику.
Агрегация: считаем бизнес-показатели
Превратишь тысячи строк в одну понятную метрику и не попадёшься на HAVING против WHERE.
JOIN: собираем данные из связей
Соберёшь ответ из нескольких таблиц и научишься замечать размножение строк до того, как оно испортит цифру.
Подзапросы и CTE: запросы в несколько ходов
Разложишь сложный запрос на понятные шаги через WITH — вместо трёхэтажной вложенности.
Строки, даты и типы: приводим данные в форму
Приведёшь грязные строки и даты в форму, пригодную для отчёта: интервалы, обрезка, приведение типов.
Курс построен на PostgreSQL, но SQL не ограничивается одним движком. Запрос «выручка по месяцам» в трёх диалектах пишется по-разному, и курс показывает, в чём именно различия.
SELECT date_trunc('month', created_at)::date AS month, sum(total) AS revenue FROM orders GROUP BY month;
PostgreSQL — Первый день месяца — функция усечения даты. (диалект курса)
В тренажёре у каждого диалекта своя песочница: PostgreSQL, MySQL и ClickHouse запускаются на настоящих серверах.
ACCESS 03
1 глава · 8 уроков · 5 ч 31 минАналитический SQL
Оконные функции — ранги, скользящие суммы, сравнение с соседом
До этого ты писал запросы. Здесь ты начинаешь думать как сильный SQL-пользователь.
Оконные функции: аналитика без потери строк
Посчитаешь ранги, доли и накопительные суммы, не потеряв ни одной строки — то, ради чего SQL берут в аналитику.
Задачи-гейты в главах — не учебные примеры. Они взяты из того же каталога, что и задачи в тренажёре, а их формулировки — из реальных собеседований в российских компаниях.
Условие. Для каждой категории найди товар с максимальной выручкой. Если максимум делят несколько товаров, верни все.
ожидаемый результат
| category | product | revenue |
|---|---|---|
| корм | Мяу-микс 4 кг | 184 200 |
| игрушки | Мышь-дразнилка | 96 400 |
| игрушки | Лазер PRO | 96 400 |
В двух последних строках максимум совпал, поэтому ROW_NUMBER() здесь не подходит.
WITH ranked AS ( SELECT category, product, revenue, rank() OVER ( PARTITION BY category ORDER BY revenue DESC ) AS rnk FROM product_revenue ) SELECT * FROM ranked WHERE rnk = 1;
ACCESS 04
3 главы · 18 уроков · 12 ч 4 минУправлять системой
DML, схема и нормализация, транзакции, индексы и планы выполнения
База перестаёт быть чёрным ящиком: ты меняешь данные, проектируешь схему и читаешь план.
DML: меняем данные без паники
Научишься менять данные без страха: транзакция, точный WHERE, RETURNING и откат.
DDL: схема, которой можно доверять
Спроектируешь схему, которой можно доверять: типы, ограничения, нормальные формы, миграции.
Под капотом PostgreSQL: транзакции, планы, индексы
Прочитаешь план выполнения и поймёшь, почему запрос медленный — и что тут сделает индекс.
На последнем уровне запрос уже не просто текст, а дерево операций. Ты открываешь EXPLAIN ANALYZE, видишь Seq Scan там, где ожидал Index Scan, создаёшь индекс и смотришь, как меняется план.
- читать план и находить в нём узкое место
- понимать, когда индекс поможет, а когда только замедлит запись
- объяснять ACID и уровни изоляции через поведение базы, а не по учебнику
ACCESS 05
Финальная передача
Капстоун: полный аналитический отчёт по архиву — и послание К.
Капстоун: аналитика магазина
Соберёшь финальный аналитический отчёт по всему архиву — и вскроешь последний блок.
Финишная черта
Чем заканчивается курс
Не «ещё четыре фичи», а результат, с которым ты закончишь курс.
Результат после курса
77 / 77 · экзамен пройден · сертификат доступен
Финал — не просто кнопка «завершить». Капстоун-отчёт завершает работу с архивом, экзамен проверяет, что ты сам пишешь запросы, а у сертификата появляется публичная страница с проверкой подлинности.
Дуэли 1-на-1
Та же задача, два участника, время на табло. Практика, от которой сложно оторваться.
Рейтинг
Уроки и задачи дают силу, которая учитывается в общем рейтинге Арены.
Экзамен
Отдельная проверка на время: без подсказок и возможности сразу пересдать.
Первый запрос — прямо сейчас
Первые три главы доступны бесплатно. Это 16 уроков: устройство базы, SELECT, фильтры и первый полезный отчёт.
Начать бесплатно: 16 уроков