Перейти к содержанию
# RAIMBALT Learn LEARN · PRACTICE · BUILD
Войти Начать обучение
← Все курсы
DB · Ноль → продвинутый

MySQL и проектирование баз данных

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

77 уроков 21 модулейкаталог доступен без входа
КАК ПРОХОДИТЬ КУРС

Не листай уроки как обычный справочник

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

01Понятьновую идею
02Повторитьпример руками
03Изменитьи проверить эффект
04Решитьсамостоятельно
05Проверитьпонимание
06Применитьв проекте
КОНТРОЛЬ ЗНАНИЙ

Контрольные точки и итоговый экзамен

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

Войти для прохождения →
ПРОГРАММА

Содержание курса

0 из 77 подтверждено
МОДУЛЬ

Самый старт

0 / 1 уроков
01

Что такое база данных, SQL и MySQL

База данных хранит связанные данные; MySQL управляет ими; SQL — язык команд.

Изучить →
МОДУЛЬ

Старт

0 / 2 уроков
02

MySQL Server и Workbench

Урок «MySQL Server и Workbench» разбирает одну конкретную идею раздела «Старт» без лишнего усложнения.

Изучить →
03

Схема, таблица, строка и столбец

Урок «Схема, таблица, строка и столбец» разбирает одну конкретную идею раздела «Старт» без лишнего усложнения.

Изучить →
МОДУЛЬ

Данные

0 / 1 уроков
04

INSERT: добавляем первые строки

Структура таблицы бесполезна без данных. INSERT создаёт новые строки.

Изучить →
МОДУЛЬ

Запросы

0 / 3 уроков
05

SELECT: выбираем только нужные данные

SELECT читает данные. В реальной работе почти никогда не нужен бесконечный `SELECT *`.

Изучить →
06

WHERE: фильтруем строки

WHERE оставляет только строки, для которых условие истинно.

Изучить →
07

ORDER BY и LIMIT

Результат можно отсортировать и ограничить количеством строк.

Изучить →
МОДУЛЬ

Изменение

0 / 1 уроков
08

UPDATE: меняем существующие строки

UPDATE изменяет данные и особенно опасен без WHERE.

Изучить →
МОДУЛЬ

Удаление

0 / 1 уроков
09

DELETE: удаляем осознанно

DELETE без WHERE может удалить все строки таблицы.

Изучить →
МОДУЛЬ

Связи

0 / 3 уроков
10

PRIMARY KEY и FOREIGN KEY

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

Изучить →
11

INNER JOIN: соединяем связанные таблицы

JOIN превращает сохранённые id обратно в понятные связанные данные.

Изучить →
13

LEFT JOIN: показываем даже записи без пары

INNER JOIN скрывает строки без связи, LEFT JOIN сохраняет все строки слева.

Изучить →
МОДУЛЬ

Проектирование

0 / 1 уроков
12

Нормализация: не храним всё в одной огромной таблице

Нормализация помогает убрать повторения и логические противоречия.

Изучить →
МОДУЛЬ

Агрегация

0 / 2 уроков
14

COUNT, SUM, AVG, MIN, MAX

Агрегатные функции считают итог по набору строк.

Изучить →
15

GROUP BY и HAVING

GROUP BY собирает строки в группы, HAVING фильтрует уже группы.

Изучить →
МОДУЛЬ

Подзапросы

0 / 1 уроков
16

Подзапрос: запрос внутри запроса

Иногда условие зависит от результата другого запроса.

Изучить →
МОДУЛЬ

Индексы

0 / 4 уроков
17

Индекс: ускоряем поиск осознанно

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

Изучить →
68

Leftmost prefix составного индекса

Leftmost prefix составного индекса: разберём принцип, увидим рабочий пример и закрепим его на самостоятельной задаче.

Изучить →
73

Кардинальность и селективность

Кардинальность и селективность: сначала разберись, какую проблему решает механизм, затем изучи пример и проверь понимание на собственной реализации.

Изучить →
74

Покрывающий индекс

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

Изучить →
МОДУЛЬ

Анализ

0 / 1 уроков
18

EXPLAIN: смотрим план выполнения

EXPLAIN показывает, как MySQL собирается выполнять SELECT.

Изучить →
МОДУЛЬ

Транзакции

0 / 3 уроков
19

Транзакция: несколько изменений как единое целое

Связанные изменения иногда должны либо выполниться все, либо не выполниться ни одно.

Изучить →
67

Уровни изоляции и аномалии

Уровни изоляции и аномалии: разберём принцип, увидим рабочий пример и закрепим его на самостоятельной задаче.

Изучить →
75

Оптимистическая и пессимистическая конкуренция

Оптимистическая и пессимистическая конкуренция: сначала разберись, какую проблему решает механизм, затем изучи пример и проверь понимание на собственной реализации.

Изучить →
МОДУЛЬ

Проект

0 / 1 уроков
20

Проект БД: библиотека

Спроектируй не отдельный запрос, а небольшую целостную базу.

Изучить →
МОДУЛЬ

MySQL: запросы и надёжность

0 / 12 уроков
21

UNIQUE, NOT NULL и CHECK

В этом уроке тема «UNIQUE, NOT NULL и CHECK» разбирается не как готовая команда, а как инструмент для конкретной задачи.

Изучить →
22

ON DELETE

В этом уроке тема «ON DELETE» разбирается не как готовая команда, а как инструмент для конкретной задачи.

Изучить →
23

CASE

В этом уроке тема «CASE» разбирается не как готовая команда, а как инструмент для конкретной задачи.

Изучить →
24

COALESCE и NULL

В этом уроке тема «COALESCE и NULL» разбирается не как готовая команда, а как инструмент для конкретной задачи.

Изучить →
25

CTE WITH

В этом уроке тема «CTE WITH» разбирается не как готовая команда, а как инструмент для конкретной задачи.

Изучить →
26

ROW_NUMBER

В этом уроке тема «ROW_NUMBER» разбирается не как готовая команда, а как инструмент для конкретной задачи.

Изучить →
27

RANK и DENSE_RANK

В этом уроке тема «RANK и DENSE_RANK» разбирается не как готовая команда, а как инструмент для конкретной задачи.

Изучить →
28

Составной индекс

В этом уроке тема «Составной индекс» разбирается не как готовая команда, а как инструмент для конкретной задачи.

Изучить →
29

Covering index

В этом уроке тема «Covering index» разбирается не как готовая команда, а как инструмент для конкретной задачи.

Изучить →
30

EXPLAIN ANALYZE

В этом уроке тема «EXPLAIN ANALYZE» разбирается не как готовая команда, а как инструмент для конкретной задачи.

Изучить →
31

Изоляция транзакций

В этом уроке тема «Изоляция транзакций» разбирается не как готовая команда, а как инструмент для конкретной задачи.

Изучить →
32

Итог MySQL

В этом уроке тема «Итог MySQL» разбирается не как готовая команда, а как инструмент для конкретной задачи.

Изучить →
МОДУЛЬ

Professional

0 / 30 уроков
33

UNION и UNION ALL

В этом уроке «UNION и UNION ALL» разбирается от проблемы к решению, а не как набор команд.

Изучить →
34

EXISTS

В этом уроке «EXISTS» разбирается от проблемы к решению, а не как набор команд.

Изучить →
35

Correlated subquery

В этом уроке «Correlated subquery» разбирается от проблемы к решению, а не как набор команд.

Изучить →
36

Window frames

В этом уроке «Window frames» разбирается от проблемы к решению, а не как набор команд.

Изучить →
37

LAG и LEAD

В этом уроке «LAG и LEAD» разбирается от проблемы к решению, а не как набор команд.

Изучить →
38

FIRST_VALUE

В этом уроке «FIRST_VALUE» разбирается от проблемы к решению, а не как набор команд.

Изучить →
39

Recursive CTE

В этом уроке «Recursive CTE» разбирается от проблемы к решению, а не как набор команд.

Изучить →
40

Natural vs surrogate key

В этом уроке «Natural vs surrogate key» разбирается от проблемы к решению, а не как набор команд.

Изучить →
41

Soft delete

В этом уроке «Soft delete» разбирается от проблемы к решению, а не как набор команд.

Изучить →
42

Audit fields

В этом уроке «Audit fields» разбирается от проблемы к решению, а не как набор команд.

Изучить →
43

Index selectivity

В этом уроке «Index selectivity» разбирается от проблемы к решению, а не как набор команд.

Изучить →
44

Leftmost prefix

В этом уроке «Leftmost prefix» разбирается от проблемы к решению, а не как набор команд.

Изучить →
45

Index merge

В этом уроке «Index merge» разбирается от проблемы к решению, а не как набор команд.

Изучить →
46

ORDER BY и индекс

В этом уроке «ORDER BY и индекс» разбирается от проблемы к решению, а не как набор команд.

Изучить →
47

Too many indexes

В этом уроке «Too many indexes» разбирается от проблемы к решению, а не как набор команд.

Изучить →
48

Cardinality estimates

В этом уроке «Cardinality estimates» разбирается от проблемы к решению, а не как набор команд.

Изучить →
49

ANALYZE TABLE

В этом уроке «ANALYZE TABLE» разбирается от проблемы к решению, а не как набор команд.

Изучить →
50

Sargability

В этом уроке «Sargability» разбирается от проблемы к решению, а не как набор команд.

Изучить →
51

ACID глубже

В этом уроке «ACID глубже» разбирается от проблемы к решению, а не как набор команд.

Изучить →
52

Deadlocks

В этом уроке «Deadlocks» разбирается от проблемы к решению, а не как набор команд.

Изучить →
53

Locking mental model

В этом уроке «Locking mental model» разбирается от проблемы к решению, а не как набор команд.

Изучить →
54

Optimistic concurrency

В этом уроке «Optimistic concurrency» разбирается от проблемы к решению, а не как набор команд.

Изучить →
55

Least privilege

В этом уроке «Least privilege» разбирается от проблемы к решению, а не как набор команд.

Изучить →
56

SQL injection review

В этом уроке «SQL injection review» разбирается от проблемы к решению, а не как набор команд.

Изучить →
57

Backup types

В этом уроке «Backup types» разбирается от проблемы к решению, а не как набор команд.

Изучить →
58

Restore drill

В этом уроке «Restore drill» разбирается от проблемы к решению, а не как набор команд.

Изучить →
59

Slow query log

В этом уроке «Slow query log» разбирается от проблемы к решению, а не как набор команд.

Изучить →
60

Connection pool

В этом уроке «Connection pool» разбирается от проблемы к решению, а не как набор команд.

Изучить →
61

Performance investigation

В этом уроке «Performance investigation» разбирается от проблемы к решению, а не как набор команд.

Изучить →
62

Профессиональный MySQL capstone

В этом уроке «Профессиональный MySQL capstone» разбирается от проблемы к решению, а не как набор команд.

Изучить →
МОДУЛЬ

Финал

0 / 1 уроков
63

Диагностика медленных запросов

Диагностика медленных запросов — важная тема раздела «Финал». В этом уроке ты сначала разберёшь смысл, затем увидишь рабочий пример и сразу закрепишь материал самостоятельно.

Изучить →
МОДУЛЬ

Моделирование

0 / 1 уроков
64

Функциональные зависимости и нормализация

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

Изучить →
МОДУЛЬ

SQL глубже

0 / 5 уроков
65

EXISTS и IN

EXISTS и IN: разберём принцип, увидим рабочий пример и закрепим его на самостоятельной задаче.

Изучить →
66

Оконные функции ROW_NUMBER и LAG

Оконные функции ROW_NUMBER и LAG: разберём принцип, увидим рабочий пример и закрепим его на самостоятельной задаче.

Изучить →
70

CASE и условные выражения

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

Изучить →
71

UNION и UNION ALL

UNION и UNION ALL: сначала разберись, какую проблему решает механизм, затем изучи пример и проверь понимание на собственной реализации.

Изучить →
72

GROUP BY и HAVING

GROUP BY и HAVING: сначала разберись, какую проблему решает механизм, затем изучи пример и проверь понимание на собственной реализации.

Изучить →
МОДУЛЬ

Эксплуатация

0 / 2 уроков
69

Point-in-time recovery

Point-in-time recovery: разберём принцип, увидим рабочий пример и закрепим его на самостоятельной задаче.

Изучить →
77

Slow Query Log и поиск узких мест

Slow Query Log и поиск узких мест: сначала разберись, какую проблему решает механизм, затем изучи пример и проверь понимание на собственной реализации.

Изучить →
МОДУЛЬ

Безопасность

0 / 1 уроков
76

Принцип наименьших привилегий

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

Изучить →