Мы используем cookie для стабильной работы сервиса. Подробнее

SQLAlchemy: практическая работа с базой данных в Python

ФорматОнлайн
Длительность6-7
Объём9 занятий
О курсе

Подробнее

Данный курс посвящён полному и системному изучению SQLAlchemy 2.0, одного из самых мощных и гибких ORM/SQL-инструментов в экосистеме Python. Курс построен от базовых концепций к продвинутым практикам и ориентирован на разработчиков, которые хотят уверенно работать с реляционными базами данных в реальных проектах. Модуль 1: «Введение, подключение и первый запрос» Вы познакомитесь с SQLAlchemy, разберёте, какие задачи он решает и чем отличается Core от ORM. Изучите устройство подключения к базе данных: dialect, URL, engine и пул соединений. Выполните первые SELECT-запросы и разберётесь с Result API и форматами результатов. Модуль 2: «Декларативные модели (SQLAlchemy 2.0)» Рассмотрите современный декларативный подход: DeclarativeBase, registry и MetaData. Изучите базовые и расширенные типы данных, ограничения, индексы, значения по умолчанию и вычисляемые поля. Отдельное внимание уделяется стратегиям наследования моделей. Модуль 3: «Связи и каскады» Вы научитесь описывать связи между таблицами с помощью ForeignKey и relationship, настраивать обратные связи и ассоциации. Разберёте каскадные операции, delete-orphan, passive deletes и самоссылочные связи. Модуль 4: «CRUD и транзакции в ORM» В этом модуле подробно рассматривается жизненный цикл Session, создание и изменение объектов, работа с транзакциями, откаты изменений и синхронизация состояния с базой данных. Вы научитесь корректно обрабатывать ошибки и исключения ORM. Модуль 5: «Запросы: от базовых до CTE и окон» Вы освоите построение сложных запросов: фильтрацию, сортировки, JOIN, подзапросы, агрегации, оконные функции и паттерны пагинации. Модуль формирует уверенное понимание SQL через призму SQLAlchemy. Модуль 6: «Оптимизация ORM и управление данными» В этом модуле мы изучаем продвинутую работу с SQLAlchemy, а именно стратегии загрузки и борьба с N+1, контроль ORM-графа, экономичная выборка данных, транзакции и конкурентность, типичные ошибки архитектуры и паттерн репозитория. Модуль 7: «SQLAlchemy Core» Этот модуль посвящён низкоуровневой работе с SQLAlchemy Core: Table, Column, DDL-операциям, генерации SQL, выполнению сырого SQL и работе с большими объёмами данных и потоковыми выборками. Модуль 8: «Асинхронность» Вы разберёте асинхронный SQLAlchemy: AsyncEngine, AsyncSession, особенности транзакций, выполнение запросов в async-контексте, обработку ошибок и корректное смешивание sync и async кода. Модуль 9: «Миграции с Alembic» Финальный модуль посвящён миграциям: инициализация Alembic, автогенерация и ручные ревизии, ветвления, сложные изменения схемы и data-миграции.
Требования

Что нужно для старта

  • Уверенное владение Python на базовом уровне, понимание основ SQL и общее представление о работе реляционных баз данных.
Результат

Что вы получите

  • Понимать устройство SQLAlchemy 2.0 и различия Core и ORM
  • Подключаться к БД и управлять engine, пулом и сессиями
  • Проектировать декларативные ORM-модели
  • Описывать связи, ассоциации и каскады
  • Реализовывать CRUD и управлять транзакциями
  • Писать сложные ORM-запросы
  • Избегать и диагностировать проблему N+1
  • Использовать SQLAlchemy Core и сырой SQL
  • Работать с асинхронным SQLAlchemy
  • Выполнять миграции БД с помощью Alembic
Аудитория

Для кого этот курс

  • Курс предназначен для Python-разработчиков, backend-разработчиков, которые хотят глубоко разобраться в работе с реляционными базами данных и научиться эффективно использовать SQLAlchemy в реальных проектах.
Содержание

Программа курса

9 занятий
№ТемаЧто внутри
01Введение, подключение и первый запрос

- Что такое SQLAlchemy?
- Подключение к БД: Dialect, URL, Engine, Pool
- Первый select() запрос (Core vs ORM + Session)
- Result API: Result, ScalarResult, Row

02Декларативные модели (SQLAlchemy 2.0)

- DeclarativeBase и registry
- MetaData, naming_convention, схемы
- Базовые типы данных
- Расширенные типы данных
- Ограничения и индексы: Unique, Check, составные ключи
- Значения default, server_default, onupdate, вычисляемые поля
- Наследование: Mixin, Single Table, Joined Table, Concrete

03Связи и каскады

- ForeignKey, relationship, back_populates, backref
- Ассоциации: secondary vs association object
- Каскады: cascade, delete-orphan, passive_deletes
- Самоссылочные связи (self-referencing)

04CRUD и транзакции в ORM

- Жизненный цикл Session: expire_on_commit, autoflush
- Создание объектов, append, add, add_all, delete, begin, merge
- Синхронизация через RETURNING + refresh()
- Откат изменений через rollback() и сброс состояния
- Работа с данными (SELECT, UPDATE, DELETE и проекции)
- Обработка ошибок: IntegrityError, NoResultFound, MultipleResults

05Запросы: от базовых до CTE и окон

- Фильтрация и сортировки
- Агрегаты и группировка
- JOIN: INNER и LEFT
- Self-JOIN и алиасы
- Подзапросы
- Оконные функции: over, row_number, сдвиги, агрегаты
- Паттерны пагинации и выбор узких выборок

06Оптимизация ORM и управление данными

- Стратегии загрузки и N+1
- Явные стратегии загрузки и контроль ORM-графа
- Узкие ORM-модели и экономичная загрузка данных
- Типичные архитектурные ошибки и транзакции
- Репозиторий в SQLAlchemy

07SQLAlchemy Core

- Table, Column и конструктор выражений
- DDL через метаданные: связи, схемы, индексы, ограничения
- Компиляция/сырой SQL: compile(), text(), bindparams
- Потоковые выборки и большие данные: fetchmany, execution options

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

- AsyncEngine, AsyncSession, драйверы
- Выполнение: execute, scalars, loader options в await-контексте
- Ошибки и отмена задач

09Миграции с Alembic

- Инициализация проекта, конфигурация, env.py
- Автогенерация vs ручные ревизии, naming_convention
- Ветвления и merge heads, offline/online

01Введение, подключение и первый запрос

- Что такое SQLAlchemy?
- Подключение к БД: Dialect, URL, Engine, Pool
- Первый select() запрос (Core vs ORM + Session)
- Result API: Result, ScalarResult, Row

02Декларативные модели (SQLAlchemy 2.0)

- DeclarativeBase и registry
- MetaData, naming_convention, схемы
- Базовые типы данных
- Расширенные типы данных
- Ограничения и индексы: Unique, Check, составные ключи
- Значения default, server_default, onupdate, вычисляемые поля
- Наследование: Mixin, Single Table, Joined Table, Concrete

03Связи и каскады

- ForeignKey, relationship, back_populates, backref
- Ассоциации: secondary vs association object
- Каскады: cascade, delete-orphan, passive_deletes
- Самоссылочные связи (self-referencing)

04CRUD и транзакции в ORM

- Жизненный цикл Session: expire_on_commit, autoflush
- Создание объектов, append, add, add_all, delete, begin, merge
- Синхронизация через RETURNING + refresh()
- Откат изменений через rollback() и сброс состояния
- Работа с данными (SELECT, UPDATE, DELETE и проекции)
- Обработка ошибок: IntegrityError, NoResultFound, MultipleResults

05Запросы: от базовых до CTE и окон

- Фильтрация и сортировки
- Агрегаты и группировка
- JOIN: INNER и LEFT
- Self-JOIN и алиасы
- Подзапросы
- Оконные функции: over, row_number, сдвиги, агрегаты
- Паттерны пагинации и выбор узких выборок

06Оптимизация ORM и управление данными

- Стратегии загрузки и N+1
- Явные стратегии загрузки и контроль ORM-графа
- Узкие ORM-модели и экономичная загрузка данных
- Типичные архитектурные ошибки и транзакции
- Репозиторий в SQLAlchemy

07SQLAlchemy Core

- Table, Column и конструктор выражений
- DDL через метаданные: связи, схемы, индексы, ограничения
- Компиляция/сырой SQL: compile(), text(), bindparams
- Потоковые выборки и большие данные: fetchmany, execution options

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

- AsyncEngine, AsyncSession, драйверы
- Выполнение: execute, scalars, loader options в await-контексте
- Ошибки и отмена задач

09Миграции с Alembic

- Инициализация проекта, конфигурация, env.py
- Автогенерация vs ручные ревизии, naming_convention
- Ветвления и merge heads, offline/online

Организатор

Автор курса

StepikStepik
Stepik — образовательная платформа и конструктор онлайн-курсов. Мы разрабатываем алгоритмы адаптивного обучения, сотрудничаем с авторами MOOC, помогаем в проведении олимпиад и программ переподготовки. Наша цель — сделать образование открытым и удобным. Stepik — широко известная российская образовательная платформа, основанная в 2013 году. На Stepik зарегистрировано более миллиона пользователей из России и стран СНГ. В настоящее время на Stepik представлены несколько тысяч учебных курсов на самые разные темы.
Подробнее об авторе
Мнения учеников

Отзывы о курсе

Оставьте отзыв

Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.

Напишите ваш коментарий, не менее 30 символов

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

Оставьте заявку

Консультант ответит на вопросы о курсе «SQLAlchemy: практическая работа с базой данных в Python» и поможет разобраться в деталях обучения.

Комментарий ...

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

Информация обновлена 14 сентября 2026 г.

Продолжить выбор

Похожие курсы

Фреймворк Apache Spark для разработчиков: продвинутый уровень
−10%32 академ. часов
Фреймворк Apache Spark для разработчиков: продвинутый уровень

Глубокое погружение в внутреннее устройство Apache Spark и его компонентов. Этот курс поможет вам понять, как устроены и работают различные модули Spark, такие как Spark Core, Spa…

ОнлайнПродвинутый
55 500 ₽−10%
49 950 ₽
SQL практикум. Полный курс
4-5 часов в неделю
SQL практикум. Полный курс

Загляни в Телеграм канал курса. Там обсуждение и новости. В конце курса студентов ждет приятный бонус! 🎁 Цель курса Научить вас работать с базами данных на профессиональном уровне…

Онлайн12 занятий
890 ₽
Базы данных с нуля
−35%
Базы данных с нуля

Разберись в реляционных и NoSQL базах и спроектируй свою: 2 месяца онлайн, практика и сертификат. Открой программу и тарифы.

ОнлайнНачальный
14 900 ₽−35%
9 680 ₽Рассрочка на 12 мес.
SQL-разработчик: тариф PRO
3 ноября
SQL-разработчик: тариф PRO

Практический онлайн-курс, на котором вы с нуля за 3 месяца освоите профессию SQL-разработчика в своем темпе и с обратной связью от опытных экспертов. Изучите основы работы с реляц…

Онлайн
Персональный наставникДомашние задания+4
89 900 ₽от 24 972 ₽/мес на 7491 мес.
Начать без затрат

Бесплатные курсы

Python для решения практических задач
Бесплатно
Python для решения практических задач

Научились решать простые задачи на питоне, но не можете понять, как сделать что-то полезное? Наш курс научит вас правильно гуглить! На примерах задач сбора данных (Data Scraping)…

Онлайн5 занятий
Бесплатно
Python для геймеров: базовый курс на игровых примерах
Бесплатно4 часа в неделю
Python для геймеров: базовый курс на игровых примерах

Здесь не будет сложных задач «про шахматы»! Здесь не будет абстрактных задач и сложных математических вычислений. Зато есть: теория простым и понятным языком игровые механики логи…

Онлайн12 занятий
Бесплатно
"Поколение Python": курс для начинающих
Бесплатно
"Поколение Python": курс для начинающих

"Поколение Python: курс для начинающих" знакомит с основными типами данных, конструкциями и принципами структурного программирования языка Python. Целевая аудитория – школьники, с…

Онлайн17 занятий
Бесплатно