SQL для начинающих: основы за 30 минут
2026-03-04
Не пропустите бесплатные IT мероприятия
Подписывайтесь на Telegram-канал — анонсы митапов, конференций и хакатонов каждый день
Что такое SQL и зачем он нужен
SQL (Structured Query Language) — язык для работы с базами данных. Он нужен почти всем в IT: бэкенд-разработчики пишут запросы к базе, аналитики извлекают данные для отчётов, тестировщики проверяют данные напрямую, продакт-менеджеры строят дашборды. SQL существует с 1970-х и не теряет актуальности — это один из самых долгоживущих языков в IT.
Популярные базы данных, работающие с SQL: PostgreSQL (самая популярная в России для новых проектов), MySQL, Microsoft SQL Server, SQLite (встроенная, для мобильных приложений).
SELECT — получение данных
Самая частая операция. Вы спрашиваете у базы: «покажи мне данные».
SELECT * FROM users; — все столбцы из таблицы users.
SELECT name, email FROM users; — только конкретные столбцы. В реальной работе всегда указывайте нужные столбцы — SELECT * неэффективен на больших таблицах.
WHERE — фильтрация
Выбираем не всё, а только то, что подходит под условие:
SELECT name, email FROM users WHERE age > 25;
SELECT * FROM orders WHERE status = 'completed' AND total > 1000;
Операторы: =, !=, >, <, >=, <=, AND, OR, IN, LIKE, BETWEEN, IS NULL.
SELECT * FROM users WHERE name LIKE '%ов'; — все, чьё имя заканчивается на «ов».
ORDER BY и LIMIT
Сортировка и ограничение результатов:
SELECT name, created_at FROM users ORDER BY created_at DESC LIMIT 10; — 10 последних зарегистрированных пользователей.
JOIN — объединение таблиц
Данные обычно хранятся в нескольких таблицах. JOIN связывает их:
SELECT users.name, orders.total FROM users JOIN orders ON users.id = orders.user_id;
Основные типы:
- INNER JOIN — только строки, где есть совпадение в обеих таблицах
- LEFT JOIN — все строки из левой таблицы, даже если в правой совпадений нет (там будет NULL)
- RIGHT JOIN — наоборот
LEFT JOIN используется чаще всего. Пример: вывести всех пользователей и их заказы, включая тех, кто ничего не заказывал.
GROUP BY — группировка и агрегация
Считаем статистику по группам:
SELECT city, COUNT(*) as user_count FROM users GROUP BY city ORDER BY user_count DESC; — сколько пользователей в каждом городе.
Агрегатные функции: COUNT(), SUM(), AVG(), MIN(), MAX().
HAVING — фильтрация после группировки:
SELECT city, COUNT(*) as cnt FROM users GROUP BY city HAVING cnt > 100; — только города с более чем 100 пользователями.
Изменение данных
INSERT — добавление
INSERT INTO users (name, email, age) VALUES ('Иван', 'ivan@mail.ru', 28);
UPDATE — обновление
UPDATE users SET age = 29 WHERE email = 'ivan@mail.ru';
Важно: всегда используйте WHERE с UPDATE. Без WHERE обновятся все строки в таблице.
DELETE — удаление
DELETE FROM users WHERE id = 42;
Аналогично — без WHERE удалятся все данные. На продакшене такие команды выполняются с особой осторожностью.
Что дальше
После освоения основ изучите: подзапросы, оконные функции (WINDOW), индексы, транзакции и оптимизацию запросов (EXPLAIN). Для практики используйте SQLBolt, LeetCode (раздел Database) или разверните PostgreSQL локально и экспериментируйте на своих данных.
Углубить знания SQL помогут митапы по аналитике данных и бэкенд-разработке. Бесплатные мероприятия по этим темам — на freeitevent.ru.