Основы
6 мин чтения·

Как выучить SQL с нуля: дорожная карта

SQL — один из самых благодарных навыков в IT: язык не меняется десятилетиями, выучивается за недели, а нужен везде — от аналитики до бэкенда. Эта статья — пошаговый план: что учить, в каком порядке, сколько это займёт и обо что чаще всего спотыкаются новички.

Мой прогресс по дорожной картепройдено 0 из 6 недель

Отмечайте пройденные недели прямо в статье — прогресс сохранится в вашем браузере, и статья превратится в личный трекер.

Сколько времени это займёт

Реалистичные сроки при занятиях по 30–60 минут в день:

  • 2 недели — уверенный SELECT: выборки с условиями, сортировка, агрегация. Уже достаточно, чтобы доставать данные для отчётов.
  • 4–6 недель — базовый уровень: соединения таблиц, подзапросы, изменение данных. Это минимум, который спрашивают на собеседованиях стажёров и джунов.
  • 2–3 месяца — уровень уверенного джуна: оконные функции, транзакции, понимание индексов.

Программировать уметь не нужно: SQL — декларативный язык, вы описываете что хотите получить, а не как это сделать. Математики сверх школьной тоже не потребуется.

Главное правило на весь путь: 20% времени — чтение, 80% — написание запросов руками. SQL не выучивается глазами.

Неделя 1. Понять, с чем работаем, и написать первый SELECT

Цель недели — разобраться в устройстве баз данных и выполнить первые запросы.

А вот и ваш первый запрос — он живой, нажмите «выполнить»:

MySQL 8.1
SELECT name, category, price
FROM products
ORDER BY price DESC
LIMIT 3;

Вы только что попросили у базы три самых дорогих товара — и она ответила. Поменяйте 3 на 5 или DESC на ASC и посмотрите, как изменится результат.

Устанавливать СУБД на компьютер для этого не нужно: в интерактивном курсе запросы выполняются прямо в браузере, а MySQL и PostgreSQL переключаются одной кнопкой.

Неделя 2. Фильтры и сортировка

Цель — научиться доставать из таблицы ровно те строки, которые нужны.

После этой недели стоит начать решать задачи в тренажёре — по 2–3 в день, начиная с простых. Задачи дают то, чего не даёт чтение: умение переводить вопрос на русском в запрос на SQL.

Неделя 3. Агрегация: от строк к цифрам

Цель — отвечать на вопросы «сколько», «в среднем», «максимум по группе».

Здесь же стоит понять разницу WHERE и HAVING — это вопрос номер один на собеседованиях по этой теме.

Неделя 4. Соединение таблиц — сердце SQL

В реальных базах данные всегда разложены по нескольким таблицам, и почти каждый рабочий запрос соединяет две-три из них. Это самая важная неделя курса.

Не торопитесь: добейтесь, чтобы разница между INNER JOIN и LEFT JOIN стала очевидной на уровне интуиции. Дальше всё будет строиться на этом.

Неделя 5. Подзапросы, CTE и условная логика

Цель — собирать запросы из нескольких шагов.

Неделя 6. Изменение данных и создание таблиц

До этого момента вы только читали данные — теперь учимся их менять.

На этом базовый уровень закрыт: вы умеете доставать, считать, соединять и менять данные.

Вот запрос, который к этому моменту вы сможете не только прочитать, но и написать сами, — соединение таблиц, группировка и сортировка в одном флаконе:

MySQL 8.1
SELECT u.country, COUNT(*) AS orders_count, ROUND(AVG(o.total_amount), 2) AS avg_check
FROM orders o
JOIN users u ON u.user_id = o.user_id
GROUP BY u.country
ORDER BY orders_count DESC;
countryorders_countavg_check
Germany15715.71
Russia14015.66
USA8614.86
UK7316.13

Если каждая строчка здесь понятна — базовый SQL у вас в кармане.

Дальше: что отличает джуна от стажёра

Когда база уверенно сидит в руках, добавляйте темы, которые чаще всего звучат на собеседованиях уровня джун и выше:

Пять ошибок, которые тормозят новичков

  • Читать без практики. Прочитанный синтаксис забывается за три дня, написанный руками запрос — остаётся. Любая тема без 5–10 решённых задач — непройденная тема.
  • Начинать с установки СУБД. Можно потратить вечер на установку и настройку MySQL и перегореть до первого запроса. Начните в браузерном тренажёре, а локальную базу поставите, когда она реально понадобится.
  • Зубрить функции списками. Сотни функций не нужны: 90% работы делают COUNT, SUM, AVG, COALESCE и пара строковых. Остальные ищутся в справочнике за минуту.
  • Прыгать в оконные функции до JOIN. Модные темы без фундамента не усваиваются. Порядок недель выше выстроен не случайно.
  • Учить «вообще», без цели. Сформулируйте, зачем вам SQL: пройти собеседование, автоматизировать отчёты, перейти в аналитику. Цель определяет, на чём делать упор и когда остановиться.

С чего начать прямо сейчас

План простой: откройте первый урок курса — он бесплатный, как и весь базовый курс, — и пройдите неделю 1. Закончите её — вернитесь сюда и поставьте первую галочку. Через шесть недель регулярных занятий у вас будет навык, который указывают требованием в каждой второй вакансии аналитика, тестировщика и бэкенд-разработчика.

А когда база будет пройдена, углубляться можно в продвинутых курсах: проектирование баз данных, оптимизация запросов и анализ данных в SQL.

Читайте по теме