Что такое SQL?
SQL (Structured Query Language) — язык запросов к базам данных. С его помощью выбирают нужные строки, фильтруют, группируют и соединяют таблицы, а также добавляют, изменяют и удаляют данные.
Запрос описывает результат, а не способ его получения: вы пишете, какие данные нужны, а база сама решает, как их достать быстрее. Базовый набор — SELECT для выборки, WHERE для фильтра, JOIN для соединения таблиц, GROUP BY для агрегации.
SQL — самый переносимый навык в работе с данными: он нужен аналитику, бэкенд-разработчику, тестировщику и продакт-менеджеру. Диалекты PostgreSQL, MySQL и MS SQL различаются в деталях, но основа у них общая.
Где применяется
SQL пишут не только разработчики. Аналитик выгружает им данные для отчёта, тестировщик проверяет, что заказ действительно записался в базу, продакт-менеджер сам считает конверсию, не отвлекая команду, а маркетолог собирает сегмент для рассылки.
В продукте SQL-запросы живут внутри кода бэкенда, в дашбордах Power BI и Looker Studio, в ETL-процессах, которые каждую ночь наполняют хранилище. Поэтому его почти всегда спрашивают на собеседованиях на аналитика и на бэкенд, а в вакансиях он встречается чаще любого конкретного фреймворка.
Пример
SELECT city, COUNT(*) FROM orders WHERE status = 'paid' GROUP BY city — количество оплаченных заказов по городам.
SELECT c.city,
COUNT(*) AS orders,
SUM(o.total) AS revenue
FROM orders o
JOIN customers c ON c.id = o.customer_id
WHERE o.status = 'paid'
AND o.created_at >= '2026-09-01'
GROUP BY c.city
HAVING SUM(o.total) > 10000
ORDER BY revenue DESC; Частые вопросы
Сложно ли выучить SQL с нуля?
Это один из самых доступных входов в IT: базовые выборки с фильтром и сортировкой осваиваются за пару вечеров, потому что запрос читается почти как английская фраза. Сложность появляется позже — в соединениях таблиц, подзапросах и оконных функциях.
Чем отличаются PostgreSQL, MySQL и MS SQL?
Это разные системы управления базами, но ядро языка у них общее: выборки, фильтры, соединения и группировки пишутся одинаково. Расходятся детали — работа с датами, строковые функции, синтаксис ограничения строк. Освоив один диалект, второй подхватывают за несколько дней.
В чём разница между JOIN и подзапросом?
JOIN соединяет строки нескольких таблиц в одну выборку по условию. Подзапрос — это отдельный запрос внутри другого, результат которого используется как значение или набор строк. Часто одну задачу решают обоими способами, но JOIN обычно быстрее и читается легче.
Нужен ли SQL, если в проекте используется ORM?
Да. ORM пишет запросы за вас, но именно поэтому нужно уметь их читать: типичные проблемы с производительностью начинаются с невидимых запросов, которые библиотека отправляет в цикле. Разобрать план выполнения без знания SQL невозможно.