бесплатно без регистрации 18 уроков

SQL

Достать из базы ровно то, что нужно

Язык запросов к базам данных: таблицы и отбор, сортировка и итоги, соединения и подзапросы, NULL и даты, изменение данных и разбор «запрос показывает не то». Настоящая база прямо в браузере — запросы выполняются по-честному.

Задание ниже на этой же странице. Ничего заполнять не нужно.

18уроков с домашней работой к каждому
198заданий с проверкой в браузере
0 ₽платных тарифов на платформе нет
17 часовстолько уходит на уровень
Первый урок · без регистрации Урок 1 · «Что такое база и зачем SQL» — с него начинается курс 5 минут

Таблицы, строки, ключи

База данных — это склад, где информация лежит в таблицах. Таблица похожа на лист в электронной таблице: сверху названия столбцов, ниже строки с данными. Разница в трёх вещах, и каждая из них важна.

id · name · city · age · signup_date1 · Анна Смирнова · Москва · 28 · 2023-01-152 · Борис Кузнецов · Санкт-Петербург · 35 · 2023-02-033 · Вера Ильина · Казань · 22 · 2023-02-20строка — один покупатель целиком, со всеми его даннымистолбец — одна характеристика у всех покупателей сразуid — номер строки: по нему на неё ссылаются другие таблицы
Столбец — это характеристика, строка — один объект целиком, ключ — его номер.

Столбец — одна характеристика: имя, город, возраст. У столбца есть название и тип: name хранит текст, age — целые числа, price — числа с копейками. Тип не украшение: он решает, что с колонкой можно делать. Сложить два текста нельзя, а вычесть одну дату из другой — можно.

Строка (её называют ещё записью) — один объект целиком: конкретный покупатель со всеми его данными. Строк в таблице бывает и десять, и десять миллионов, и это почти не меняет скорость поиска — если база устроена правильно.

Ключ — столбец id, номер строки, уникальный внутри таблицы. Его называют первичным ключом. По нему на строку ссылаются другие таблицы, и он же гарантирует, что двух одинаковых строк не появится.

Наконец, главное отличие от электронной таблицы: таблиц много, и они связаны. Покупатели лежат в одной таблице, заказы в другой, товары в третьей. Заказ не хранит имя покупателя — он хранит его номер.

customers1 · Аннаorders7 · customer_id 1order_items12 · order_id 7одно и то же имя хранится один раз — и правится тоже один разэто и есть главная мысль: данные не дублируются, а связываютсясобрать их обратно в одну таблицу — работа запроса
Заказ не хранит имя покупателя — он хранит его номер, и по номеру имя находится.

Зачем так? Чтобы имя хранилось один раз. Если покупатель сменил фамилию, её правят в одном месте, и во всех заказах она становится новой сама. В электронной таблице, где имя вписано в каждую строку, пришлось бы искать и править сотню строк — и одну обязательно пропустили бы.

Столбец, который хранит номер строки из другой таблицы, называют внешним ключом. В нашей базе это orders.customer_id, order_items.order_id, order_items.product_id. Собрать данные обратно в одну таблицу — работа запроса, и этому посвящён целый урок про соединения.

И последнее про таблицу: клетка может быть пустой. Не ноль и не пустая строка, а именно ничего — это состояние называется NULL. В нашей базе у одной покупательницы не указан возраст, а у одного отзыва нет текста: так бывает, когда данные не собрали, не успели или они вообще не нужны.

Пустота ведёт себя не как значение, и это источник самых тихих ошибок в отчётах: строка с незаполненным возрастом не попадёт ни в «моложе тридцати», ни в «старше тридцати», и человек просто исчезнет из обоих списков. Разбору этого посвящён отдельный урок; пока достаточно запомнить, что пустая клетка — третье состояние, а не ноль.

Весь урок целиком →

Задание из урока 1

В SQL вы описываете, как именно база должна найти нужные строки.

Программа курса 1 уровень · 18 уроков · контрольная уровня с сертификатом

Программа

Уровень 1 — язык запросов и первый отчёт 18 уроков · контрольная на 22 задания

Как устроена база, как достать из неё нужное и как собрать ответ на вопрос: отбор и сортировка, итоги и группировки, соединения и подзапросы, NULL и даты, изменение данных и разбор расхождений.

01
Что такое база и зачем SQL

Понимать, из чего состоит таблица и как таблицы связаны, чем запрос отличается от выгрузки и почему части запроса выполняются не в том порядке, в каком пишутся.

около 31 минуты · домашняя работа
02
SELECT: выбрать колонки

Уметь выбрать нужные колонки, дать им читаемые имена, посчитать в запросе выражение и получить список значений без повторов.

около 36 минут · домашняя работа
03
WHERE: отбор строк

Уметь отобрать нужные строки условием, правильно соединять несколько условий скобками и узнавать три ловушки, из-за которых отбор молча возвращает не то.

около 36 минут · домашняя работа
04
Ещё про отбор: IN, BETWEEN, LIKE, IS NULL

Записывать частые условия короткими словами вместо длинных цепочек, искать текст по образцу и правильно обращаться с незаполненными клетками — включая ловушку NOT IN, которая опустошает результат целиком.

около 37 минут · домашняя работа
05
Порядок и ограничение: ORDER BY, LIMIT, OFFSET

Задавать порядок строк и не полагаться на случайный, строить «топ-N» и страницы, а также узнавать четыре случая, в которых список выглядит упорядоченным, а порядок в нём не тот.

около 37 минут · домашняя работа
06
Считаем: агрегаты

Отвечать на вопросы одним числом: сколько, сколько всего, в среднем, минимум и максимум. Различать три записи COUNT и знать четыре места, где итог оказывается не тем, о котором спрашивали.

около 32 минут · домашняя работа
07
GROUP BY: итоги по группам

Получать не один итог, а итог по каждому значению: разрезы по категориям, городам и месяцам. Знать правило о том, что можно писать рядом с агрегатом, и три причины, по которым строка разреза пропадает.

около 38 минут · домашняя работа
08
HAVING: отбор итогов

Отбирать не строки, а готовые итоги: города с несколькими клиентами, заказы дороже порога, товары с числом отзывов выше нормы. Различать два сита и знать, почему одно из них дешевле.

около 36 минут · домашняя работа
09
JOIN: несколько таблиц

Собирать данные из нескольких таблиц одним запросом: условие связи, псевдонимы таблиц, цепочка соединений и отчёт поверх неё. И узнавать главную ошибку соединения — потерянное условие связи, которое не даёт ошибки.

около 37 минут · домашняя работа
10
Виды соединений

Показывать и тех, у кого пары нет: клиентов без заказов, товары без продаж, записи с оборванной связью. Правильно считать по таким строкам и не терять их условием в WHERE.

около 37 минут · домашняя работа
11
Когда соединение размножает строки

Понимать, почему после соединения суммы вырастают, уметь это заметить тремя способами и вылечить — считая итог до соединения, а не после.

около 36 минут · домашняя работа
12
Подзапросы

Решать вопросы, которые не укладываются в один шаг: отобрать по посчитанному, посчитать итог от итога, проверить наличие связанных строк. И выбирать между подзапросом и соединением осознанно.

около 41 минуты · домашняя работа
13
CASE и вычисляемые колонки

Выбирать значение по условию, считать несколько разрезов одним запросом, задавать свой порядок сортировки и группировать по вычисленному признаку — не попадаясь на порядок веток и забытый ELSE.

около 41 минуты · домашняя работа
14
NULL: три состояния вместо двух

Собрать в одно правило всё, что пустота делала в прошлых уроках: три исхода условия, карту мест, где она выпадает и где остаётся, замену через COALESCE и NULLIF и три источника её появления.

около 36 минут · домашняя работа
15
Даты и текст

Задавать период так, чтобы не терять последний день, строить отчёты по месяцам и годам, приводить текст к единому виду и находить в нём мусор — и знать четыре ловушки, из-за которых отбор по дате или тексту молча промахивается.

около 41 минуты · домашняя работа
16
Изменение данных

Добавлять, править и удалять строки так, чтобы не задеть лишнего: сначала посмотреть тем же условием, потом менять, а связанные правки заворачивать в транзакцию — и понимать, что именно база проверяет за вас, а что не проверяет никто.

около 41 минуты · домашняя работа
17
Отчёт целиком

Превращать вопрос, заданный словами, в запрос: уточнять, что означает каждое слово, собирать отчёт шестью шагами от таблицы к виду и проверять его тремя способами прежде, чем отдать.

около 32 минут · домашняя работа
18
Запрос показывает не то

Разбирать расхождения по методу, а не наугад: сужать запрос до места, где число поехало, узнавать причину по каталогу — строк больше или строк меньше — и пользоваться шестью инструментами, которым не нужно ничего, кроме самого SQL.

около 37 минут · домашняя работа
Кому как объяснять тема одна, различаются примеры и язык

Начало урока «Что такое база и зачем SQL» — нажмите подачу и посмотрите, как это написано для вас

Базовая подача Так урок написан для всех, пока подача не выбрана.

База данных — это склад, где информация лежит в таблицах. Таблица похожа на лист в электронной таблице: сверху названия столбцов, ниже строки с данными. Разница в трёх вещах, и каждая из них важна.

Как устроен урок. Урок — одна страница: главы подряд, внутри них встроенная практика, в конце итог и домашняя работа. Порог 70%, пересдача через сутки новым набором.

Сертификат. За сданную контрольную уровня — именной, с кодом проверки подлинности; от 95% с отличием.

Пересдача и возвращения. Домашнюю можно пересдать через сутки другим набором, а через два дня, неделю и месяц курс сам предложит четыре коротких задания из того же урока.

Частые вопросы
Сколько занимает курс «SQL»?

Уровень 1 — это 18 уроков примерно на 17 часов вместе с домашними работами и контрольной. Заниматься можно в любом темпе: прогресс сохраняется.

Нужно ли платить?

Нет. Все курсы платформы бесплатны, платных тарифов нет вовсе. Регистрация нужна только для того, чтобы сохранялся прогресс.

С чего начать, если я ничего не знаю о теме?

С первого уровня: он написан с нуля и не требует подготовки. Уровни — это глубина, а не точка входа: второй продолжает первый без повторов.

Что такое подача и какую выбрать?

Подача меняет примеры и язык объяснения, а не тему урока: Аналитик, Разработчик, Тестировщик. Выбрать можно при первом заходе и сменить в любой момент.

Как проверяются задания?

Каждое задание проверяет сервер: ответы не хранятся в браузере, а разбор приходит после ответа. Домашняя работа — 10 заданий из банка, порог 70%, пересдача через сутки новым набором.

Есть ли сертификат?

Да. За сданную контрольную уровня выдаётся именной сертификат с кодом проверки подлинности; от 95% — с отличием. Проверить код может любой на странице /check.

Дальше — весь курс с сохранением прогресса

Регистрацию можно отложить: первые уроки открыты целиком, а прогресс появится, как только заведёте аккаунт.

Зарегистрироваться