SQLLab
Все статьи

SQL для backend-разработчика: что проверять на интервью

Какие SQL-навыки критичны для backend-разработчика и как HR может правильно оценить их на техническом скрининге.

24 января 2026 г.·4 мин чтения·

Backend-разработчики работают с базами данных каждый день: пишут миграции, оптимизируют запросы, проектируют схемы. Но их SQL — это не аналитический SQL. Им не нужно строить когортный анализ или рассчитывать retention. Им нужно другое.

Разберём, что именно проверять у backend-разработчиков и как HR может оценить это без глубоких технических знаний.

Чем SQL backend-разработчика отличается от SQL аналитика

АспектАналитикBackend-разработчик
Основные задачиОтчёты, метрики, дашбордыCRUD, транзакции, производительность приложения
Типичные запросыСложные SELECTINSERT, UPDATE, DELETE + SELECT
ПриоритетПравильный результатСкорость и надёжность
ИнструментыBI-инструменты, SQL IDEORM + raw SQL
Работа с индексамиПонимает зачемСоздаёт и управляет

Что обязательно знать backend-разработчику

Основы (junior)

  • CRUD операции: SELECT, INSERT, UPDATE, DELETE
  • JOIN: INNER, LEFT
  • Базовые индексы: что это, зачем, как создать
  • Транзакции: BEGIN, COMMIT, ROLLBACK
  • Понимание первичных и внешних ключей

Средний уровень (middle)

  • JOIN всех типов + самосоединения
  • Составные индексы, покрывающие индексы
  • EXPLAIN / EXPLAIN ANALYZE — умение читать план выполнения
  • N+1 проблема и как её избежать
  • Уровни изоляции транзакций (хотя бы базово)
  • Работа с NULL
  • Оконные функции (базово)

Продвинутый уровень (senior)

  • Оптимизация медленных запросов
  • Партиционирование таблиц
  • Блокировки и deadlocks — понимание причин и решений
  • Connection pooling
  • Репликация (хотя бы концептуально)
  • Работа с большими объёмами данных (> 100 млн строк)

Вопросы для скрининга backend-разработчика

Junior-уровень

  1. «Что такое транзакция и зачем она нужна?»
  2. «Напишите запрос: получить всех пользователей и их последний заказ.»
  3. «Чем PRIMARY KEY отличается от UNIQUE?»

Middle-уровень

  1. «Что такое N+1 проблема? Как вы с ней сталкивались?»
  2. «Как вы поймёте, что запрос работает медленно и что с этим делать?»
  3. «Напишите INSERT, который не создаёт дубликат, если запись уже существует.»

Senior-уровень

  1. «Расскажите про уровни изоляции транзакций. В чём разница между READ COMMITTED и REPEATABLE READ?»
  2. «Что такое deadlock и как его предотвратить?»
  3. «Как вы будете хранить и запрашивать данные таблицы на 500 млн строк?»

Практические задачи для теста

Задача 1

Есть таблица users и таблица orders. Напишите запрос, который выводит список пользователей, у которых нет ни одного заказа.

Правильный ответ: LEFT JOIN ... WHERE orders.id IS NULL или NOT EXISTS.

Что проверяет: понимание LEFT JOIN и работа с NULL.

Задача 2

Напишите SQL для вставки нового пользователя. Если пользователь с таким email уже существует — обновите его имя.

Правильный ответ: INSERT ... ON CONFLICT (email) DO UPDATE SET name = ...

Что проверяет: знание upsert-операций.

Задача 3

Что не так с этим кодом? (показать пример с N+1 запросом в цикле)

Что проверяет: понимание производительности приложения.

На что обращать внимание во время собеседования

Хорошие знаки:

  • Кандидат сам упоминает производительность («а как часто это будет выполняться?»)
  • Знает про ORM, но понимает, когда нужен raw SQL
  • Говорит о миграциях и версионировании схемы
  • Упоминает конкретный опыт с реальными проблемами

Тревожные знаки:

  • Не знает, что такое индекс
  • Никогда не смотрел на EXPLAIN
  • «Я всегда использую ORM, SQL не пишу» — нормально для junior, тревожно для middle+

Связка SQL с другими навыками

SQL для backend-разработчика неотрывен от выбора архитектуры. Хороший кандидат понимает:

  • Когда использовать реляционную БД, а когда NoSQL
  • Как структурировать схему, чтобы запросы были эффективными
  • Как работает connection pool в его фреймворке

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

Итог

SQL для backend — это не про аналитику, а про надёжность и скорость. Проверяйте транзакции, индексы и понимание производительности. Кандидат, который умеет читать EXPLAIN и знает про N+1, принесёт больше пользы команде, чем тот, кто пишет красивые аналитические запросы.

Похожие статьи

Попробуй на практике

Тренажёр с реальными задачами — бесплатно и без регистрации

Открыть тренажёр →