Курс на Stepik
Обложка курса «SQLAlchemy 2.0 от новичка до эксперта» на Stepik
777 ₽

SQLAlchemy 2.0 от новичка до эксперта ★ 0.000

Открыть на
STEPIK.ORG

Практический курс по SQLAlchemy 2.0: синхронный и асинхронный ORM, связи таблиц, стратегии загрузки, SELECT-запросы, каскады, Alembic, FastAPI и тестирование. Уберём N+1, разберём транзакции, Unit of Work, AsyncSession и типичные ошибки. Проекты и подготовка к собеседованию. Курс для тех, кто хочет уверенно работать с БД в Python.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «SQLAlchemy 2.0 от новичка до эксперта»Учеников на курсе 0
Сертификаты, выданные на курсе «SQLAlchemy 2.0 от новичка до эксперта»Сертификатов выдано 0
Отзывы о курсе «SQLAlchemy 2.0 от новичка до эксперта»Отзывов получено 0
Рейтинг курса «SQLAlchemy 2.0 от новичка до эксперта»Рейтинг курса 0.000
Уроки в курсе «SQLAlchemy 2.0 от новичка до эксперта»Количество уроков 120
Тесты в курсе «SQLAlchemy 2.0 от новичка до эксперта»Количество квизов 10
Время прохождения курса «SQLAlchemy 2.0 от новичка до эксперта»Время прохождения курса —
Стоимость курса «SQLAlchemy 2.0 от новичка до эксперта»Стоимость курса 777 ₽ —
Обновления курса «SQLAlchemy 2.0 от новичка до эксперта»Обновления курса — —
Дата публикации курса «SQLAlchemy 2.0 от новичка до эксперта»Дата публикации курса — ———
Последнее обновление курса «SQLAlchemy 2.0 от новичка до эксперта»Последнее обновление — ———

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

Разделы в курсе «SQLAlchemy 2.0 от новичка до эксперта» 12 разделов Уроки в курсе «SQLAlchemy 2.0 от новичка до эксперта» 120 уроков Тесты в курсе «SQLAlchemy 2.0 от новичка до эксперта» 10 тестов Время прохождения курса «SQLAlchemy 2.0 от новичка до эксперта» 0 ч. Последнее обновление курса «SQLAlchemy 2.0 от новичка до эксперта» обн. 28 сентября 2026

Введение

14 уроков
1. Приветствие ↗
2. Что такое pipx? ↗
3. Установка pipx и основные функции ↗
4. Руководство по pipx ↗
5. Список полезных программ, для pipx ↗
6. Как сделать Python-пакет совместимым с pipx ↗
7. Введение в Poetry ↗
8. Что такое SQL и зачем он нужен ↗
9. Что такое ORM и зачем он нужен ↗
10. Что такое SQLAlchemy: Core vs ORM ↗
11. Соединение с БД: клиент-сервер, пул, pgBouncer ↗
12. Установка окружения: Poetry, Docker, VS Code ↗
13. Структура учебного проекта ↗
14. Тестовые задания ↗

Основы (синхронный SQLAlchemy)

19 уроков
1. Engine: create_engine, строка подключения, dialect ↗
2. База данных: memory vs файл, DBeaver, WSL ↗
3. DeclarativeBase и первая модель ↗
4. Mapped[T] vs Annotated[T, mapped_column(...)] ↗
5. Session: что это и зачем ↗
6. CRUD: insert, select, update, delete (ORM) ↗
7. CRUD: Core-стиль ↗
8. Метод execute() и shortcuts (get, scalar, scalars) ↗
9. scalar(), scalars(), scalar_one_or_none(), mappings() ↗
10. values(), returning(), return_defaults() ↗
11. Жизненный цикл объекта: transient → pending → persistent ↗
12. Unit of Work и Identity Map ↗
13. flush() vs commit() ↗
14. autoflush: как работает ↗
15. expire_on_commit ↗
16. Состояния expired и detached ↗
17. expire(), refresh(), expunge() ↗
18. Транзакции: commit(), rollback(), begin(), sessionmaker() ↗
19. Типичные ошибки: DetachedInstanceError, IntegrityError ↗

Связи между таблицами

15 уроков
1. relationship() и back_populates: основы ↗
2. One-to-Many ↗
3. Many-to-One ↗
4. One-to-One (UniqueConstraint, uselist=False) ↗
5. Many-to-Many: secondary, ассоциативная таблица ↗
6. Самоссылочные таблицы: remote_side ↗
7. backref vs back_populates ↗
8. Каскадное добавление объектов в Session ↗
9. ondelete и onupdate управление каскадным поведением на уровне БД ↗
10. ForeignKeyConstraint для составных ключей ↗
11. Индексы и UniqueConstraint ↗
12. Типичные ошибки связей ↗
13. Примечание: кавычки в аннотациях типов ↗
14. Примечание: One-to-Many vs Many-to-One ↗
15. Примечание: указывать ли класс в relationship() ↗

Загрузка связанных данных

12 уроков
1. Подготовка асинхронного проекта: PostgreSQL + async/await ↗
2. Lazy loading и проблема N+1 ↗
3. selectinload() — основная стратегия для коллекций ↗
4. options() — механизм добавления стратегий ↗
5. joinedload() — основная стратегия для одиночных связей ↗
6. subqueryload() — стратегия нетерпеливой загрузки через подзапрос ↗
7. contains_eager() + join() — самописные JOIN ↗
8. raiseload() — запрет ленивой загрузки ↗
9. load_only(), defer — позволяет указать, какие колонки загружать ↗
10. with_loader_criteria() — глобальный фильтр к загрузке сущностей ↗
11. Настройка стратегии по умолчанию в relationship(lazy=...) ↗
12. FastAPI-эндпоинт с selectinload ↗

Каскады ORM

5 уроков
1. Типы каскадов: save-update, merge, delete, delete-orphan ↗
2. Каскады для разных типов связей ↗
3. Взаимодействие с ondelete CASCADE: ORM+БД ↗
4. passive_deletes: оптимизация удаления ↗
5. Рекомендации по выбору каскадов ↗

SELECT-запросы

21 урок
1. select(): базовый синтаксис ↗
2. select_from(), add_columns(), with_only_columns() ↗
3. Операторы сравнения: ==, !=, >, <, between, is_(), isnot() ↗
4. Операторы: in_(), notin_() ↗
5. like, ilike, contains, icontains, startswith, endswith ↗
6. Операторы: and_(), or_(), not_(), &, |, ~ ↗
7. order_by(), limit(), offset() ↗
8. group_by() и агрегаты: func.count/sum/avg ↗
9. where() vs having(): фильтрация строк и групп ↗
10. JOIN: join(), outerjoin(), aliased() ↗
11. union(), union_all(), intersect(), except_() — составной запрос ↗
12. CTE и подзапросы: cte(), subquery(), add_cte() ↗
13. Конструкции:exists, case, coalesce, cast, label, extract, concat ↗
14. Удалить дубликата строк: distinct() и func.count(distinct(...)) ↗
15. Оконные функции: over() ↗
16. Оконные функции: rank, dense_rank, over() ↗
17. Оптимизация: execution_options(), prefix_with() ↗
18. compile(), literal_binds, get_execution_options(),compile_kwargs ↗
19. Получение результата ↗
20. Стили возврата ↗
21. Общая сводка методов ↗

Асинхронность

11 уроков
1. Асинхронный драйвер: asyncpg, aiomysql ↗
2. create_async_engine() и async_sessionmaker() ↗
3. expire_on_commit=False в async ↗
4. AsyncSession: await execute(), commit(), flush() ↗
5. begin() vs async_sessionmaker.begin() ↗
6. AsyncAttrs ↗
7. Lazy loading в async ↗
8. raiseload("*") как защита ↗
9. FastAPI + AsyncSession ↗
10. .dispose() ↗
11. Типичные ошибки: MissingGreenlet, DetachedInstanceError ↗

Инфраструктура

7 уроков
1. Что такое Alembic ↗
2. Alembic: установка, env.py ↗
3. Alembic: revision --autogenerate, upgrade, downgrade ↗
4. Alembic + async: engine.sync_engine, run_sync ↗
5. Структура проекта ↗
6. Конфигурация через .env + pydantic-settings ↗
7. Тестирование с pytest + фикстуры БД ↗

Продвинутые темы

9 уроков
1. Bulk-операции: bulk_save_objects(), insert().values([...]) ↗
2. UPSERT: on_conflict_do_update(), on_conflict_do_nothing() ↗
3. deferred() — отложенная загрузка колонок ↗
4. hybrid_property и hybrid_method ↗
5. Events и @validates ↗
6. selectin_polymorphic ↗
7. Raw SQL: text(), bindparam() ↗
8. Core API: Table, Column, MetaData ↗
9. Использование UUID в качестве первичного ключа ↗

Практические проекты

2 урока
1. Async CRUD с PostgreSQL ↗
2. «Библиотека»: FastAPI + AsyncSession + selectinload ↗

Подготовка к собеседованию

4 урока
1. Разница SQLAlchemy 1.x и 2.0 ↗
2. Шпаргалка по ключевым темам ↗
3. Практика: SQL ↔ SQLAlchemy (параллельные примеры) ↗
4. Топ-20 вопросов на собеседовании ↗

Заметки для автора курса

1 урок
1. План курса ↗