Базы данных и SQL: достаточный минимум
Базы данных и SQL для новичка: таблицы, связи, запросы SELECT и JOIN, индексы. Достаточный минимум с примерами, чтобы пройти собеседование и решать рабочие задачи.
Коротко. SQL — язык запросов к реляционным базам. Джуну (и разработчику, и QA, и аналитику) нужен уверенный минимум: SELECT, WHERE, JOIN, GROUP BY и понимание индексов. Это самый частый технический вопрос на собеседованиях начального уровня.
Таблицы и связи
Данные хранятся в таблицах (строки и столбцы). Таблицы связаны ключами: первичный ключ (PRIMARY KEY) уникально идентифицирует строку, внешний ключ (FOREIGN KEY) ссылается на строку другой таблицы. Пример: users и orders, где orders.user_id ссылается на users.id.
SELECT: выборка данных
SELECT name, email
FROM users
WHERE city = 'Москва'
ORDER BY name
LIMIT 10;
Читается как: «выбрать столбцы name и email из users, где город Москва, отсортировать по имени, взять первые 10».
JOIN: связываем таблицы
JOIN объединяет строки из разных таблиц по условию. Заказы вместе с именами пользователей:
SELECT users.name, orders.total
FROM orders
JOIN users ON users.id = orders.user_id;
- INNER JOIN — только совпавшие строки.
- LEFT JOIN — все из левой таблицы + совпавшие из правой (иначе NULL).
Агрегация и группировка
SELECT city, COUNT(*) AS users_count
FROM users
GROUP BY city
HAVING COUNT(*) > 100;
Агрегатные функции: COUNT, SUM, AVG, MIN, MAX. GROUP BY группирует строки, HAVING фильтрует уже сгруппированные (в отличие от WHERE).
Нормализация простыми словами
Нормализация — это принцип «не дублировать данные». Вместо того чтобы в каждой строке заказа хранить имя, email и телефон покупателя, хранят только его id, а сами данные — один раз в таблице users. Плюсы: меньше места, нет расхождений (поменяли email в одном месте), проще поддерживать. Для джуна достаточно понимать идею и уметь связать таблицы внешним ключом — глубокие нормальные формы на собеседовании начального уровня спрашивают редко.
Индексы: зачем
Индекс ускоряет поиск по столбцу (как оглавление в книге). Плюс — быстрые SELECT по индексированному полю; минус — замедление вставок и лишнее место. Индексируйте то, по чему часто ищете и джойните (например, внешние ключи).
Частые ошибки новичков в SQL
- ❌ Путать WHERE и HAVING — фильтровать агрегаты через WHERE не выйдет.
- ❌ Забывать про NULL: сравнение
= NULLне работает, нужноIS NULL. - ❌ SELECT * в продакшн-коде вместо явного списка нужных столбцов.
- ❌ Тяжёлый JOIN без индексов на ключах — запрос «висит» на больших данных.
Следующий шаг в бэкенде
Примените идеи из «Базы данных и SQL: достаточный минимум» к своему учебному проекту или к одной вакансии на этой неделе. Соберите минимальный API: CRUD + валидация + одна таблица в БД + README с запуском. Дальше: REST API, SQL, auth, деплой. План — бэкенд 2026, обзор роли — backend starter.
Как применить «Базы данных и SQL: достаточный минимум» на практике
Пройдите материал не как статью, а как задание. Выпишите 3 тезиса из разделов (Таблицы и связи; SELECT: выборка данных; JOIN: связываем таблицы) и напротив каждого — действие на 30–90 минут: что сделаете руками, какой файл/репозиторий появится, как поймёте что готово. Без этого колонки «изучил» в голове не конвертируются в оффер.
Связка с соседними материалами: REST API, SQL, auth, деплой, бэкенд 2026. Не читайте всё подряд — возьмите один следующий URL и закройте его артефактом в git до конца недели. Если роль ещё не выбрана, сначала профессии и 5 вакансий-ориентиров, потом возвращайтесь к этой теме.
На собеседовании по теме «Базы данных и SQL: достаточный минимум» вас почти всегда просят пример из практики. Подготовьте 60–90 секунд: задача → что сделали → результат/ограничение. Даже учебный пример звучит сильнее пересказа теории.
Частые вопросы
Какой SQL нужен джуну?
SELECT, WHERE, ORDER BY, JOIN, GROUP BY, агрегаты. Этого хватает для собеседования и большинства задач.
Чем WHERE отличается от HAVING?
WHERE фильтрует строки до группировки, HAVING — после, по результатам агрегатов.
Какую БД учить?
PostgreSQL — популярный и востребованный выбор. Синтаксис SQL во многом переносим между базами.
Где тренировать SQL?
На интерактивных тренажёрах и реальном датасете: возьмите открытые данные и отвечайте на вопросы запросами. Особенно полезно будущим аналитикам.
Материал «Базы данных и SQL: достаточный минимум» имеет смысл только вместе с практикой: один артефакт в git на этой неделе важнее десяти вкладок с теорией. Если застряли на выборе роли — начните с профессий и одной вакансии-ориентира.