SQL: семейный бюджет без догадок
13 практических уроков: от первой таблицы до проверяемого отчёта и резервной копии. Работает на компьютере, планшете и смартфоне.
·
Все уроки открыты: регистрация для чтения не нужна.
-
Зачем нужен SQL: семейный бюджет, которому можно задать вопрос
Первый урок курса: запускаем готовую базу семейного бюджета и получаем доход, расходы и остаток одним запросом. SQL нужен там, где ответ должен быть точным, повторяемым и проверяемым, а не собранным вручную в таблице.
-
Таблица, строка, столбец и NULL: сначала модель бюджета
Разбираем четыре сущности проекта — счета, категории, операции и лимиты — и учимся отличать отсутствие значения от нуля. До синтаксиса важно понять, какой факт хранит каждая строка.
-
CREATE TABLE: схема, которая не принимает невозможное
Создаём таблицы семейного бюджета и переносим часть проверок к данным: обязательные поля, уникальные имена, положительные суммы, допустимые виды категорий, даты и внешние ключи.
-
INSERT и параметры: как добавить расход безопасно
Добавляем операции по одной и пачкой, узнаём границы SQL-параметров и отделяем данные пользователя от текста запроса. Это защищает и кавычки в заметке, и базу от SQL-инъекции.
-
SELECT: найти нужные операции и ничего не изменить
Осваиваем проекцию, фильтр, сортировку и ограничение результата. Учимся читать логический порядок запроса и задавать устойчивую сортировку, чтобы один вопрос всегда означал одно и то же.
-
CASE, COALESCE и даты: превратить хранимое в понятное
Строим вычисляемые столбцы, правильно обрабатываем NULL и задаём границы месяца. Разбираем, почему форматирование для экрана не должно становиться форматом хранения.
-
SUM, COUNT, GROUP BY и HAVING: итог по категориям
Сжимаем множество операций в проверяемые итоги, считаем строки отдельно от значений и находим категории, вышедшие за лимит.
-
Ключи и JOIN: связать операции со счетами и категориями
Нормализуем модель бюджета и соединяем таблицы по ключам. Учимся выбирать INNER и LEFT JOIN, замечать размножение строк и не связывать данные по похожему тексту.
-
Подзапросы и WITH: сложный вопрос по шагам
Разбиваем расчёт нормы сбережений на именованные части с CTE, сравниваем подзапросы и соединения и учимся не повторять одну формулу в нескольких местах.
-
Оконные функции: накопительный остаток без потери строк
Считаем баланс после каждой операции и рейтинг расходов. Оконная функция видит соседние строки, но сохраняет каждое исходное событие.
-
Транзакции и UPDATE: изменить всё или ничего
Исправляем данные безопасно и моделируем перевод между счетами как одну атомарную операцию. Учимся проверять WHERE через SELECT, использовать ROLLBACK и не путать банковскую операцию с транзакцией базы.
-
Сверка данных: найти пропуск до принятия решения
Проверяем бюджет контрольными равенствами, ищем дубли и осиротевшие связи, отличаем ограничение одной строки от правила для всей таблицы.
-
Индекс, EXPLAIN и итоговый отчёт: завершение курса
Собираем семейный отчёт, измеряем план запроса, создаём полезный индекс и проверяем резервную копию восстановлением. Итог курса — не набор команд, а база, которой можно доверить повседневный вопрос.