Зачем это всем
Почти любая программа что-то хранит. Разработчик, аналитик, тестировщик, менеджер продукта — все рано или поздно упираются в вопрос «а как достать эти данные».
Хорошая новость: базовый уровень осваивается за неделю-две, и его хватает для большинства задач и почти для всех собеседований на начальные позиции.
Порядок изучения
1. Выборка. Достать все записи из таблицы, потом только нужные колонки.
SELECT title, created_at FROM notes;
2. Условия. Отобрать по признаку: равно, больше, входит в список, содержит текст, пусто или не пусто.
SELECT * FROM notes WHERE created_at > '2026-01-01';
3. Сортировка и ограничение. По возрастанию и убыванию, взять первые несколько.
SELECT * FROM notes ORDER BY created_at DESC LIMIT 10;
4. Подсчёты. Количество, сумма, среднее, минимум, максимум.
SELECT count(*) FROM notes;
5. Группировка. Посчитать не по всей таблице, а по группам — например, сколько заметок в каждой категории.
SELECT category, count(*) FROM notes GROUP BY category;
Здесь важно понять разницу между условием до группировки и условием после неё: первое отбирает строки, второе отбирает уже посчитанные группы.
6. Объединение таблиц. Самая важная тема и та, на которой чаще всего спотыкаются.
SELECT notes.title, users.name
FROM notes
JOIN users ON users.id = notes.user_id;
Разберитесь, чем внутреннее объединение отличается от левого: первое оставляет только совпавшие пары, второе — все записи левой таблицы, даже если пары не нашлось. Это спрашивают почти всегда.
7. Изменение данных. Добавить, обновить, удалить. И осторожность: обновление без условия меняет всю таблицу.
Что можно отложить
Вложенные запросы посложнее, оконные функции, хранимые процедуры, оптимизация планов выполнения. Всё это нужно, но не на входе.
Где тренироваться
Заведите себе базу с двумя-тремя связанными таблицами: пользователи, заметки, категории. Наполните десятком записей руками.
Дальше решайте задачи на своей базе: сколько заметок у каждого пользователя, у кого их нет вовсе, какая категория самая частая, кто писал за последний месяц.
Такие упражнения полезнее абстрактных задачников, потому что вы держите в голове смысл данных.
На чём проваливаются на собеседованиях
- Объединение таблиц. Просят соединить две таблицы и посчитать по группам — и человек плывёт.
- Левое объединение. Задача «найти пользователей без заметок» решается им, но многие пытаются искать иначе.
- Группировка. Путают, какие условия ставить до, а какие после.
- Незнание, что такое индекс. Достаточно понимать: ускоряет поиск, замедляет запись, ставится на то, по чему часто ищут.
Хватит читать — пора делать
На CohortX можно найти команду под пет-проект и получить тот самый опыт, о котором спрашивают на собеседовании.
Похожие статьи
- Fifteen SQL queries you'll be asked at an interviewStandard problems with notes on what each one tests, and the places beginners get them wrong.
- Пятнадцать запросов SQL, которые спросят на собеседованииТиповые задачи с пояснениями, что именно проверяет каждая, и разбор мест, где новички ошибаются.
- SQL for beginners: where to startWhat you need at entry, the order to learn it in from simple selects to joins, and where to practise.