Базы данныхБазовыйСкоро
Курс SQL и NoSQL
Две модели данных в одном курсе: MySQL 8.4 и MongoDB 8.0 — схемы, запросы, индексы, транзакции, агрегации и выбор между ними.
Курс готовится к публикации
Материалы курса написаны и проверены, идёт подготовка к выходу на сайте: программа ниже — настоящая. Открытые курсы можно читать уже сейчас, а о запуске этого напишите — ответим, когда он появится.
- Модулей
- 14
- Ак. часов
- 96
- Разделов
- 135
Что нужно знать заранее. полезен опыт работы с ORM из курсов NodeJS и TypeORM, но курс самодостаточен — SQL и MongoDB даются с нуля.
Программа курса
14 модулей; каждый — полноценное занятие с теорией, листингами, практикой и домашним заданием.
- 1
Введение в базы данных
Этот курс — практическое продолжение и «ветка» курсов по NodeJS и TypeORM. Там работа с базой данных велась через ORM (Prisma в курсе NodeJS, TypeORM в одноимённом…
Что такое БДSQL vs NoSQLРеляционная модельMySQLУстановкаПервое подключение
- 2
Создание таблиц и типы данных
Таблица — основная структура хранения данных. Команда CREATE TABLE задаёт имя таблицы и список столбцов с типами и ограничениями.
CREATE TABLEТипы данныхPRIMARY KEYNOT NULLDEFAULTAUTO_INCREMENTALTER TABLEDROP
- 3
CRUD — INSERT, SELECT, UPDATE, DELETE
INSERT INTO добавляет новые строки в таблицу. Можно вставить одну или несколько строк за один запрос.
INSERT INTOSELECTWHEREUPDATEDELETEФильтрацияLIKEBETWEEN
- 4
Сортировка, агрегация, группировка
ORDER BY сортирует результат. ASC — по возрастанию (по умолчанию), DESC — по убыванию.
ORDER BYCOUNTSUMAVGMINMAXGROUP BYHAVING
- 5
JOIN и подзапросы
Все примеры этого модуля продолжают работать в базе shop с таблицами categories, products и customers из модулей 2–3 — при повторном запуске клиента сначала…
JOININNER / LEFT / RIGHTSelf JOINПодзапросыIN / EXISTSКоррелированные подзапросы
- 6
Индексы и внешние ключи
Индекс — структура данных, ускоряющая поиск в таблице. Без индекса MySQL просматривает каждую строку (Full Table Scan)…
INDEXUNIQUE INDEXFOREIGN KEYALTER ADD FKON DELETEON UPDATEEXPLAINОптимизация
- 7
Функции MySQL и транзакции
Транзакция — группа операций, которые выполняются как единое целое: либо все успешно, либо ни одна…
Строковые функцииЧисловые функцииДата/времяCASEIFCOALESCEТранзакцииACID
- 8
Введение в NoSQL и MongoDB
NoSQL (Not Only SQL) — общее название для нереляционных баз данных. Существует четыре основных типа:
Типы NoSQLДокументная модельMongoDBУстановкаmongoshПервые команды
- 9
CRUD в MongoDB
MongoDB предоставляет два метода для вставки: insertOne() для одного документа и insertMany() для нескольких.
insertOneinsertManyfindupdateOneupdateManydeleteOnedeleteManyФильтры
- 10
MongoDB — выборка, сортировка и агрегация
Все примеры этого модуля продолжают работу с коллекцией products в базе shop — она наполнена в модуле 9…
sortlimit / skipdistinctregexКурсорыAggregation Pipeline$group$lookup
- 11
Индексы в MongoDB
Без индекса MongoDB выполняет Collection Scan — просматривает каждый документ. С индексом — использует структуру B-tree для быстрого поиска…
createIndexТипы индексовcompoundtextTTLexplainОптимизация
- 12
Моделирование данных в MongoDB
В MongoDB два подхода к связыванию данных: встраивание и ссылки.
Встраивание vs ссылкиОдин-к-одномуОдин-ко-многимМногие-ко-многимСхемыПаттерны
- 13
Валидация, бэкап, безопасность
Хотя MongoDB не навязывает схему (schemaless), на практике нужно контролировать структуру документов. Schema Validation позволяет задать правила для коллекции.
Schema ValidationJSON SchemamongodumpmongorestoreПользователиРоли
- 14
SQL vs NoSQL — сравнение и итоги курса
Рассмотрим одни и те же операции в MySQL и MongoDB. Листинги показывают соответствие конструкций и упрощены: таблицы и поля в них не совпадают с учебной базой shop…
Сравнение запросовКогда что выбратьГибридный подходИтоговый проект