Мы используем 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 занятий
1 700 ₽
Основы языка Python
22 ак.ч.
Основы языка Python

На курсе вы получите базовые навыки программирования на языке Python. Рассматриваются темы от типов данных до объектно-ориентированного программирования. Python – чрезвычайно мощн…

Онлайн10 занятийНачальный
27 500 ₽
Начать без затрат

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

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

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

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

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

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

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

Онлайн17 занятий
Бесплатно
Основы Python
Бесплатно1 месяц
Основы Python

Бесплатный курс «Основы Python» позволяет всем желающим погрузиться в тему программирования, понять, насколько вам близка эта сфера и при желании продолжить обучение. Освойте осно…

Онлайн7 занятий
Домашние заданияИнтерактивные тренажёры+4
Бесплатно
Python с нуля до ОГЭ
Бесплатно
Python с нуля до ОГЭ

Если Вы хотели научиться программированию, но не знали с чего начать, то данный курс для вас Важно! Курс разрабатывается и находится в режиме наполнения и редактирования. Поэтому…

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