Курсы SQL онлайн
Курсы SQL помогают пройти материал последовательно: от первого SELECT до специализированных тем вроде производительности, ClickHouse, BigQuery и Data Engineering. В SQL Arena теория сразу связана с задачей в браузере, а первые главы курсов можно проходить бесплатно.
Обновлено · Команда SQL Arena
Что потренируете
- SQL с нуля по последовательной программе
- Практика после теории
- Работа с разными диалектами
- Производительность и EXPLAIN ANALYZE
- SQL для аналитики и Data Engineering
Пример задачи в тренажёре
Так выглядит задача в SQL Arena: условие, редактор, результат и схема базы.
Есть таблица курсов и таблица уроков. Выведите активные курсы и только их бесплатные уроки. Верните название курса как course, название урока как free_lesson и уровень как level. Отсортируйте сначала по названию курса, затем по id урока.
SELECT c.title AS course, l.title AS free_lesson, c.level FROM courses c JOIN lessons l ON l.course_id = c.id WHERE c.is_active = TRUE AND l.is_free = TRUE ORDER BY c.title, l.id;
| # | course | free_lesson | level |
|---|---|---|---|
| 1 | BigQuery Foundations | Arrays | intermediate |
| 2 | JSON in SQL | JSON Values | intermediate |
| 3 | Query Performance | Reading EXPLAIN | advanced |
| 4 | SQL Basics | First SELECT | beginner |
Есть таблица курсов и таблица уроков. Выведите активные курсы и только их бесплатные уроки. Верните название курса как course, название урока как free_lesson и уровень как level. Отсортируйте сначала по названию курса, затем по id урока.
SELECT c.title AS course, l.title AS free_lesson, c.level FROM courses c JOIN lessons l ON l.course_id = c.id WHERE c.is_active = TRUE AND l.is_free = TRUE ORDER BY c.title, l.id;
Что происходит в запросе
Таблица courses хранит информацию о самом курсе, а lessons — отдельные уроки. Вторая колонка lessons, course_id, указывает на id курса. Поэтому запрос начинает с courses и соединяет lessons условием l.course_id = c.id. После JOIN каждая строка результата представляет конкретный урок вместе с данными его курса.
В WHERE стоят два независимых фильтра. c.is_active = TRUE исключает архивный курс, даже если внутри него есть бесплатный урок. l.is_free = TRUE оставляет только бесплатные уроки. В SELECT мы не выводим технические id: для пользователя полезнее увидеть название курса, название доступного урока и уровень. Псевдонимы course и free_lesson делают назначение колонок результата явным.
ORDER BY c.title, l.id задаёт стабильный порядок. Сначала строки располагаются по названию курса, а уроки одного курса идут по id. Сам запрос небольшой, но он показывает полезный принцип обучения SQL: сначала понять связи между таблицами и условия задачи, а затем собрать решение из нескольких понятных частей.
SELECT c.title AS course, l.title AS free_lesson, c.level FROM courses c JOIN lessons l ON l.course_id = c.id WHERE c.is_active = TRUE AND l.is_free = TRUE ORDER BY c.title, l.id;
| course | free_lesson | level |
|---|---|---|
| BigQuery Foundations | Arrays | intermediate |
| JSON in SQL | JSON Values | intermediate |
| Query Performance | Reading EXPLAIN | advanced |
| SQL Basics | First SELECT | beginner |
| SQL Basics | Filtering Rows | beginner |
Ошибки при выборе курса и изучении SQL
Смотреть теорию без запросов
Синтаксис быстро кажется знакомым, но это не означает, что вы сможете написать запрос с пустого листа. После каждой новой конструкции полезно сразу решить задачу, где нужно самостоятельно выбрать эту конструкцию.
Начинать со специализированной темы без базы
ClickHouse, BigQuery, производительность и Data Engineering проще изучать, когда SELECT, фильтрация, соединения и агрегаты уже не требуют постоянного обращения к шпаргалке. Без основы приходится одновременно разбираться и с SQL, и со спецификой инструмента.
Выбирать обучение только по количеству уроков
Количество материалов само по себе мало говорит о результате. Важно, что происходит внутри урока: есть ли задача, можно ли выполнить запрос, увидеть ошибку и проверить решение на данных.
10 курсов SQL Arena
Все курсыВ SQL Arena сейчас 10 курсов. «SQL с нуля» состоит из 12 глав и 77 уроков, 16 уроков доступны бесплатно. «Аналитика данных — Python и pandas в браузере» — 13 глав, 83 урока, 11 бесплатных. В SQL Performance 10 глав и 49 уроков, включая работу с EXPLAIN ANALYZE и индексами на базе в 10 млн строк; 6 уроков бесплатны. Курс по ClickHouse содержит 8 глав и 41 урок, 5 бесплатных. BigQuery — 8 глав, 27 уроков и 4 бесплатных. «Регулярные выражения в SQL» — 6 глав, 18 уроков и 3 бесплатных. «JSON и вложенные данные» — 6 глав, 18 уроков и 3 бесплатных. «NoSQL на практике — Redis, MongoDB, Cassandra» включает 9 глав и 41 урок, 4 бесплатных. Data Engineering — 10 глав, 58 уроков, 6 бесплатных. Kafka — 10 глав, 59 уроков, 7 бесплатных. В каждом уроке есть теория и задача, которую можно выполнить в браузере. Это отличает курс от обычного тренажёра: курс задаёт последовательность обучения, а тренажёр удобен для дополнительной практики по отдельным навыкам.
- SQL с нуля12 глав · 77 уроков · 16 бесплатно
- Аналитика данных13 глав · 83 уроков · 11 бесплатно
- SQL Performance10 глав · 49 уроков · 6 бесплатно
- ClickHouse8 глав · 41 уроков · 5 бесплатно
- BigQuery8 глав · 27 уроков · 4 бесплатно
- Регулярные выражения6 глав · 18 уроков · 3 бесплатно
- JSON и вложенные данные6 глав · 18 уроков · 3 бесплатно
- NoSQL на практике9 глав · 41 уроков · 4 бесплатно
- Data Engineering10 глав · 58 уроков · 6 бесплатно
- Kafka10 глав · 59 уроков · 7 бесплатно
Справочник по теме
Подробные статьи с синтаксисом и примерами в справочнике SQL Arena.
Частые вопросы
Какой курс SQL выбрать с нуля?
Если вы раньше не писали запросы, логично начать с курса «SQL с нуля», где материал выстроен от базовых конструкций дальше. Специализированные программы по производительности, ClickHouse или BigQuery лучше подключать после основной базы.
Есть ли бесплатный курс по SQL?
Первые главы курсов SQL Arena доступны бесплатно. В курсе «SQL с нуля» бесплатны 16 уроков. Для дополнительной практики есть бесплатный тариф тренажёра с 292 задачами без привязки карты.
Можно ли пройти SQL обучение онлайн без установки базы?
Да. Теория и задачи SQL Arena работают в браузере, поэтому локально устанавливать PostgreSQL, MySQL, ClickHouse или BigQuery не нужно. Запрос можно выполнять прямо внутри урока.
Чем SQL курс отличается от тренажёра?
Курс ведёт по заранее выстроенной программе и объясняет тему перед заданием. Тренажёр состоит из отдельных задач и удобен, когда нужно набить руку, повторить конкретную тему или проверить себя без последовательного урока.
Начните с первой главы
Если SQL пока незнаком, начните с последовательного курса и выполняйте запросы сразу после теории. Первые главы доступны бесплатно, а всё работает в браузере.
Начать курс SQL