Курс про то, как устроены реляционные базы и как писать к ним запросы: проектирование, нормализация, транзакции и практика в PostgreSQL, MySQL и MS SQL Server.
Чему научитесь
Понимать транзакции, ACID и механику MVCC
Проектировать структуру реляционной базы и нормализовать её
Подборка курсов SQL для тех, кто только начинает изучение языка запросов к базам данных. Все программы начинают с самых основ — установки системы управления базами данных и первого запроса SELECT, постепенно добавляя сложные конструкции (JOIN, GROUP BY, оконные функции). На странице — сравнение программ, дорожная карта на 3-5 месяцев и обзор главных работодателей для тех, кто планирует карьеру с SQL.
Под «с нуля» в курсах SQL понимают полное отсутствие любого технического опыта в IT. Хорошая программа для полных новичков начинается с самых основ: что такое база данных, как устроены таблицы, как формулируется запрос на естественном языке и переводится в SQL. Через 2-3 недели вы пишете первые запросы SELECT с фильтрацией. К концу программы вы умеете строить сложные аналитические запросы с оконными функциями и подзапросами, оптимизировать медленные запросы, проектировать структуру таблиц для нового проекта.
Полноценная программа от нулевого уровня до начинающего SQL-аналитика длится 3-5 месяцев при 10-15 часах в неделю. К концу программы у вас должно быть портфолио из 3-5 решённых аналитических задач и резюме для рассылки в IT-компании и банки.
Чего не нужно делать перед курсом
Не нужно учить программирование (Python, Java) перед SQL. SQL — отдельный язык со своей логикой, программирование не критично. Если планируете дальше карьеру разработчика — учите программирование параллельно или после SQL.
Не нужно сразу учить несколько систем управления базами данных. Хватит одной (рекомендуется PostgreSQL). Переход на другую систему после освоения первой занимает 2-3 недели.
Не нужно заучивать синтаксис из документации. SQL учится только через постоянную практику. На курсе должно быть много задач, не теории.
Не нужно сразу учить продвинутые темы (триггеры, хранимые процедуры, репликация). Эти темы нужны разработчикам и администраторам, аналитику данных хватит базовых запросов плюс оконных функций.
Что понадобится в первую неделю
Компьютер с минимум 8 ГБ оперативной памяти, любая операционная система.
Бесплатная установка PostgreSQL (с официального сайта postgresql.org) или Docker-контейнер с PostgreSQL.
Бесплатный инструмент для написания запросов: DBeaver Community Edition (универсальный, работает с большинством систем) или pgAdmin (специально для PostgreSQL).
Учебная база данных для практики: бесплатные демонстрационные базы dvdrental, sakila, northwind — есть готовые скрипты для установки.
Учётная запись на GitHub для выгрузки учебных задач.
Психологические сложности новичков
Первая-вторая неделя — установка и подключение к базе. Технические сложности с установкой PostgreSQL, настройкой клиента DBeaver, подключением к серверу. На это уходит 2-5 часов, что многих демотивирует. Помогает наличие живого преподавателя или техподдержки от школы.
Третий-четвёртый месяц — оконные функции и подзапросы. Концепция «окна» данных и вложенных запросов первые недели кажется запутанной. Помогает много практических задач, не теории.
Четвёртый-пятый месяц — оптимизация и индексы. Понимание, почему один запрос работает за секунду, а похожий — за минуты, требует знания плана выполнения и индексов. Это переход от «запросы работают» к «запросы работают эффективно».
Да, SQL — один из самых доступных для новичков языков. Не нужно знание программирования, нужны логика и работа с данными. Базовый синтаксис проще большинства языков программирования. За 2-3 месяца можно освоить уровень начинающего аналитика. Однако если параллельно планируете карьеру разработчика — стоит дополнительно изучить любой язык программирования (Python, Java).
Сколько часов в неделю нужно заниматься?
Минимум — 5-7 часов в неделю. Оптимально — 10-15 часов, тогда полная программа на 3-5 месяцев укладывается в этот срок. Интенсивный темп — 20 часов в неделю — сокращает программу до 1,5-2 месяцев. Главное — регулярность и практика в реальной базе данных, не на абстрактных примерах.
Что должно быть в курсе SQL для полного новичка?
Обязательно: установка системы управления базами данных (PostgreSQL рекомендуется), знакомство с инструментом для написания запросов (DBeaver или pgAdmin), базовые запросы SELECT с фильтрацией и сортировкой, связки таблиц JOIN всех типов, группировка GROUP BY с агрегатными функциями, подзапросы и общие табличные выражения, оконные функции, работа с датами, условная логика CASE WHEN. Желательно: основы оптимизации (индексы, планы выполнения), нормализация базы, основы проектирования таблиц.
Что должно быть в первом портфолио?
Минимум 3-5 решённых аналитических задач, выложенных в публичный профиль на GitHub или специальной странице. Стандартный набор: расчёт ключевых метрик интернет-магазина (выручка, средний чек, количество заказов по периодам), когортный анализ удержания пользователей социального сервиса, ABC-анализ товаров или клиентов, анализ воронки покупок с поиском узких мест, дашборд показателей вымышленной компании. Каждая задача — с описанием поставленной задачи, запросом SQL и интерпретацией результатов.
Сколько времени до первой работы с SQL?
С хорошим портфолио — 1-2 месяца активного поиска после окончания курса. Без портфолио — 2-4 месяца. SQL сам по себе редко становится самостоятельной профессией — обычно это часть стека аналитика данных, разработчика или администратора. Полный путь до позиции начинающего аналитика данных с уверенным SQL — 4-7 месяцев общего обучения. Главные точки входа: банки, большие технологические компании со стажёрскими программами, маркетинговые отделы крупных компаний, аутсорсинговые аналитические агентства.
Какую систему управления базами данных учить первой?
Для большинства новичков — PostgreSQL. Это самая популярная открытая система, на её основе сделан российский форк Postgres Pro для государственного сектора. Синтаксис близок к стандарту SQL и легко переносится на другие системы. Знание PostgreSQL покрывает около 60 процентов рынка вакансий аналитиков и backend-разработчиков. После освоения PostgreSQL переход на любую другую систему (MySQL, MS SQL Server, Oracle, ClickHouse) занимает 2-3 недели.
Другие подкатегории направления «SQL для анализа данных»