Что на самом деле проверяет интервьюер

Интервьюеру по SQL важно понять три вещи: умеете ли вы думать о данных структурно, понимаете ли, почему запрос работает так, а не иначе, и отличите ли решение, которое выдержит миллион строк, от решения, которое развалится на первом же большом объёме.

Заученный ответ звучит гладко ровно до первого уточнения. Кандидат уверенно говорит: «LEFT JOIN сохраняет все строки левой таблицы». На уточняющий вопрос «а что произойдёт, если фильтр по правой таблице уедет в WHERE?» заготовка ответа уже не помогает, потому что её не из чего восстановить.

Поэтому чтение списков вопросов даёт ложную уверенность: оно тренирует узнавание формулировок, а не мышление. На реальном интервью ответ нужно собрать заново из понимания, а не вспомнить.

Как строить ответ, чтобы вас поняли

Рабочая схема ответа состоит из трёх шагов, и ни один из них не про заучивание. Ниже о том, как отвечать на вопросы на собеседовании по SQL так, чтобы вас поняли с первого раза.

Первый шаг: уточните условие. Прежде чем отвечать, имеет смысл спросить про данные и контекст: какие таблицы, какие объёмы, что считается правильным результатом. Это не признак неуверенности, а инженерная привычка, которую интервьюеры замечают и ценят.

Второй шаг: проговорите ход решения, а не один лишь итог. Интервьюеру нужен ваш путь: почему выбрали этот JOIN, где будет узкое место, что изменится при росте данных. Итог без хода мысли выглядит как списанный.

Третий шаг: обозначьте границы. Фраза «точный синтаксис не помню, но логика такая» звучит честно и выигрышно. Блеф вскрывается одним уточняющим вопросом, а умение рассуждать вслух ценится выше гладкой формулировки.

Пять вопросов, на которых чаще всего сыпятся

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

1. Чем INNER JOIN отличается от LEFT JOIN

Проверяют не определение, а понимание множеств и типичных ошибок. Слабый ответ: «LEFT JOIN возвращает все строки из левой таблицы, а INNER только совпадения». Формально верно, но дальше разговор не идёт.

Сильный ответ привязан к задаче: «Если нужно найти клиентов без заказов, беру LEFT JOIN и условие orders.id IS NULL. Если нужны только клиенты с заказами, хватит INNER JOIN. Отдельно проверю, что фильтр по правой таблице стоит в ON, а не в WHERE, иначе LEFT JOIN молча превратится в INNER».

2. Порядок выполнения GROUP BY и HAVING

Здесь смотрят на понимание логического порядка выполнения запроса. Слабый ответ: «HAVING фильтрует группы, WHERE фильтрует строки». Это заученная фраза, за которой часто нет картины.

Сильный ответ называет последовательность: FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY. И добавляет вывод: агрегат в WHERE не работает именно потому, что WHERE выполняется до группировки, где агрегата ещё не существует.

3. Почему WHERE column = NULL не возвращает строки

Вопрос проверяет трёхзначную логику. Слабый ответ: «Потому что нужно писать IS NULL». Это про синтаксис, а не про понимание.

Сильный ответ объясняет причину: NULL — не значение, а отсутствие значения. Любое сравнение с NULL даёт UNKNOWN, а не TRUE, и строки с UNKNOWN отфильтровываются. Из этого сразу понятно, почему для проверки нужен IS NULL и как это влияет на NOT IN с NULL в подзапросе.

4. Когда индекс ускоряет запрос, а когда нет

Слабый ответ: «Индекс ускоряет поиск». Общая фраза, из которой не видно опыта.

Сильный ответ называет условия. Индекс помогает на селективных фильтрах, когда строк в результате мало. Он не поможет, если на колонке применяется функция, если выборка тянет почти всю таблицу или если планировщик решит, что последовательное чтение дешевле. Такой ответ показывает, что вы видели EXPLAIN, а не просто слышали слово «индекс».

5. ROW_NUMBER, RANK и DENSE_RANK

Вопрос на внимательность: три функции отличаются только поведением при одинаковых значениях. Слабый ответ путает нумерацию и не может назвать пример.

Сильный ответ даёт пример: при двух одинаковых значениях ROW_NUMBER выдаст 1 и 2. RANK поставит 1 и 1 и пропустит следующее место. DENSE_RANK поставит 1 и 1 без пропуска. Отдельно проговаривает, где это важно: в задачах вида «топ-N с учётом ничьих» выбор функции меняет результат.

Как подготовиться, если собеседование уже скоро

Читать вопросы дальше можно, но проверять себя лучше практикой. Тесты по SQL показывают пробелы объективнее, чем самооценка при чтении: мозг узнаёт знакомую формулировку и считает, что знает тему, а тест проверяет применение.

Затем репетиция вслух. Ответ, который в голове выглядит стройным, при проговаривании часто рассыпается на середине: выясняется, что половина аргумента не сформулирована. Проговорить ответ заранее — единственный способ это заметить до интервью.

На ExplainIf для этого есть два инструмента по теме SQL & Databases: тесты по уровням и режим интервью. Во втором случае ИИ задаёт вопросы с таймером, а после сессии показывает разбор по критериям: точность, полнота, структура ответа, коммуникация. Тренажёр не заменит живого интервьюера, зато снимает страх первого раза и показывает, где именно вы плывёте.

Перед настоящим собеседованием прогоните вслух хотя бы пять вопросов из разбора выше. Если ответ получается связным и без подглядываний, база готова, а дальше дело в объёме практики.

Частые вопросы

Какие вопросы по SQL чаще всего задают на собеседовании?

Чаще всего спрашивают про JOIN и их отличия, порядок выполнения запроса и GROUP BY с HAVING, работу с NULL, индексы и планы запросов, оконные функции. Точный набор зависит от роли: аналитику чаще дают задачи на агрегаты и выборки, разработчику — на оптимизацию и структуру запросов.

Нужно ли зубрить синтаксис перед собеседованием по SQL?

Нет, важнее понимать логику. На большинстве собеседований разрешают рассуждать вслух, а точный синтаксис при необходимости уточняют или гуглят в рабочей обстановке. На вопросах на собеседовании по SQL проваливают не те, кто забыл функцию, а те, кто не может объяснить ход решения.

Что отвечать, если не знаешь точного ответа на вопрос?

Честно сказать, что точного ответа нет, и предложить ход рассуждения: какие данные нужны, как бы вы проверяли гипотезу, где стали бы смотреть документацию. Интервьюеры ценят умение рассуждать и признавать границы знания выше, чем блеф, который разваливается на первом уточнении.

Чем отличается собеседование по SQL для аналитика и для разработчика?

У аналитика чаще проверяют выборки, агрегаты и умение формулировать метрики запросами. У разработчика — оптимизацию, индексы, планы выполнения и влияние запросов на нагрузку. Базовые темы одни и те же, смещаются акценты.

Можно ли подготовиться к собеседованию по SQL за несколько дней?

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

Проверьте себя перед интервью

Пройдите тесты по SQL и отрепетируйте ответы в режиме интервью: ИИ задаёт вопросы с таймером и показывает разбор. Начать можно бесплатно.

Тренировать SQL