SQL
Язык общения с базами данных
Узнай, как устроены базы данных, и научись писать SQL-запросы: выбирать, фильтровать, сортировать, группировать и соединять данные. К концу курса ты сможешь создавать собственные таблицы, безопасно изменять данные и пользоваться индексами, представлениями и транзакциями. Любой пример можно запустить прямо в уроке на учебной базе данных.
Содержание курса
Основы SQL
НачальныйЧто такое база данных, как выбирать данные с помощью SELECT и фильтровать их с помощью WHERE.
- 1Базы данных и таблицыУзнай, что такое база данных, как таблицы складываются из строк и столбцов и как ключи связывают таблицы между собой.12 мин
- 2SELECT и псевдонимы столбцовВыбирай нужные столбцы, вычисляй новые значения прямо в запросе, давай столбцам псевдонимы и убирай повторы с помощью DISTINCT.14 мин
- 3WHERE: фильтрация строкВыбирай с помощью WHERE только нужные строки: операторы сравнения, AND, OR, NOT и роль скобок.15 мин
Фильтры, сортировка и итоги
НачальныйТочные фильтры с LIKE, IN, BETWEEN и NULL, сортировка с ORDER BY и итоги с агрегатными функциями.
- 4LIKE, IN, BETWEEN и IS NULLНаучись искать по шаблону (LIKE), сравнивать со списком значений (IN), выбирать диапазон (BETWEEN) и работать с отсутствующими данными (NULL).16 мин
- 5ORDER BY и LIMIT: сортировка и ограничениеСортируй результат по одному или нескольким столбцам, выбирай первые N строк, разбивай результат на страницы и узнай, чем здесь отличаются СУБД.14 мин
- 6Агрегатные функции: COUNT, SUM, AVG, MIN, MAXПревращай множество строк в одно число: считай строки, суммируй значения, находи среднее, минимум и максимум.14 мин
Группировка и соединение таблиц
СреднийОтчёты по группам с GROUP BY и HAVING, данные из нескольких таблиц с помощью JOIN и подзапросы.
- 7GROUP BY и HAVING: итоги по группамРазбивай строки на группы, вычисляй агрегаты для каждой группы и фильтруй группы с помощью HAVING.16 мин
- 8JOIN: соединение таблицСоединяй данные из нескольких таблиц с помощью INNER JOIN и LEFT JOIN, находи строки без пары и группируй после соединения.18 мин
- 9ПодзапросыПиши запрос внутри запроса: подзапросы в WHERE, SELECT и FROM, IN, EXISTS, коррелированные подзапросы и конструкция WITH.18 мин
Изменение данных и проектирование баз
ПродвинутыйINSERT, UPDATE и DELETE, создание таблиц с ограничениями, индексы, представления и транзакции.
- 10INSERT, UPDATE, DELETE: изменение данныхДобавляй в таблицу новые строки, изменяй существующие и удаляй ненужные — и научись делать это безопасно.16 мин
- 11CREATE TABLE: типы данных и ограниченияСоздавай собственные таблицы, выбирай подходящие типы столбцов и не пропускай неверные данные с помощью PRIMARY KEY, NOT NULL, UNIQUE, CHECK, DEFAULT и FOREIGN KEY.18 мин
- 12Индексы, представления и транзакцииУскоряй поиск с помощью индексов, давай сложным запросам имена с помощью представлений и выполняй изменения по принципу «всё или ничего» с помощью транзакций.18 мин
Продвинутый SQL
ПродвинутыйОконные функции, CTE и рекурсивные запросы, условная логика с CASE, строковые, математические функции и функции дат, операции над множествами и сложные соединения.
- 13Оконные функцииСтрой рейтинги, нумеруй строки внутри групп, считай нарастающие итоги и сравнивай с предыдущей строкой, не теряя строк: ROW_NUMBER, RANK, DENSE_RANK, SUM() OVER, PARTITION BY, LAG и LEAD.22 мин
- 14CTE: WITH и рекурсивные запросыРазбивай сложный запрос на именованные шаги, связывай несколько CTE в цепочку и строй числовые ряды и иерархии с помощью рекурсивных CTE.20 мин
- 15CASE и условная логикаПиши «если… то…» прямо в запросе с помощью CASE WHEN, управляй NULL через COALESCE и NULLIF и разворачивай таблицу в сводную с помощью условной агрегации.18 мин
- 16Функции для строк, дат и чиселОбрезай, склеивай и ищи текст, считай с датами и округляй числа в SQLite, а заодно узнай аналоги каждой функции в MySQL и PostgreSQL.20 мин
- 17Операции над множествами и сложные соединенияОбъединяй и сравнивай результаты запросов с помощью UNION, UNION ALL, INTERSECT и EXCEPT; соединяй таблицу саму с собой, строй все комбинации через CROSS JOIN и находи отсутствующее с помощью NOT EXISTS.20 мин
Базы данных на профессиональном уровне
УниверситетПроектирование баз и нормализация, транзакции и параллельная работа, индексы и оптимизация запросов, PostgreSQL и MySQL на практике, анализ данных с помощью SQL.
- 18Проектирование баз данных и нормализацияСтрой ER-модель, определяй кардинальность связей, находи функциональные зависимости и шаг за шагом декомпозируй таблицы до 1НФ, 2НФ, 3НФ и НФБК.30 мин
- 19Транзакции и параллельная работаУзнай, как обеспечивается ACID, какие аномалии порождают параллельные транзакции, как работают уровни изоляции, блокировки, MVCC и взаимоблокировки.30 мин
- 20Оптимизация запросов и индексыУзнай, как работает индекс B-дерево, как читать план запроса, как писать условия, пригодные для индекса (sargable), что такое составные и покрывающие индексы и когда индекс вредит.30 мин
- 21PostgreSQL и MySQL на практикеПереход на серверные СУБД: типы данных, IDENTITY и AUTO_INCREMENT, столбцы JSON, отличия от SQLite, пользователи и привилегии, резервные копии.30 мин
- 22Анализ данных с помощью SQLСчитай бизнес-метрики с помощью SQL: средний чек, когорты и удержание, конверсию воронки, медиану и перцентили, а в конце — проект ABC-анализа на учебных данных.30 мин