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

Базы данных в Python: SQL + SQLAlchemy

ФорматОнлайн
Объём21 занятий
О курсе

Подробнее

Эта программа — ваш системный путь от основ работы с данными до профессионального уровня. Вы освоите не только язык SQL, но и научитесь интегрировать базы данных в современные Python-приложения через самый мощный ORM-фреймворк в экосистеме — SQLAlchemy.   🔍 Особенности подхода: Программа построена по принципу «от теории к практике, от общего к частному». Вы начинаете с фундамента — проектирования БД и написания SQL-запросов. Затем углубляетесь в тонкости оптимизации и администрирования. Финальный этап — переход к коду: вы учитесь управлять теми же процессами и данными из Python, применяя все ранее изученные концепции на практике.   🎯 Практическая ценность: Вы научитесь не просто выполнять запросы в консоли, а создавать полноценные, эффективные и поддерживаемые слои работы с данными для backend-приложений. Это навык, востребованный в позициях Backend-разработчика (Python), Data Engineer и аналитика.   📊 Структура программы: Фундамент SQL (Часть 1) — проектирование БД, основы DDL/DML. Глубокое погружение в SELECT (Часть 2) — сложные запросы, оконные функции, CTE. Администрирование и оптимизация (Часть 3) — транзакции, процедуры, безопасность, производительность. Интеграция с Python (SQLAlchemy) — ORM, модели, асинхронность, миграции.   💡 Итог: Вы получите комплексное понимание жизненного цикла данных в IT-проекте: от архитектуры таблиц в базе до строк кода в приложении, которое с ней работает. Это сделает вас универсальным специалистом в области данных.
Требования

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

  • 📚 Обязательные требования:
  • Базовое понимание программирования — знакомство с любым языком на уровне переменных, условий и циклов
  • Желание работать с данными — интерес к базам данных, SQL и структурированной информации
  • Готовность решать логические задачи — SQL и ORM требуют аналитического мышления
  • 🐍 Для модуля SQLAlchemy:
  • Базовые знания Python — понимание синтаксиса, функций, основных структур данных (списки, словари)
  • 💻 Технические возможности:
  • Компьютер с доступом в интернет
  • Возможность устанавливать программное обеспечение (СУБД, Python, IDE)
  • Любая современная операционная система
  • ✨ Что будет плюсом (но не обязательно):
  • Минимальный опыт работы с любыми базами данных
  • Знакомство с реляционной моделью данных (таблицы, связи)
  • Опыт работы в командной строке/терминале
  • 🚫 Не требуется для старта:
  • Опыт написания SQL-запросов
  • Знание SQLAlchemy или других ORM
  • Умение проектировать базы данных
  • Профильное IT-образование
  • 🌟 Важно: Программа начинается с самых основ SQL и постепенно усложняется. Даже если вы никогда не работали с базами данных, первые курсы введут вас в тему. Главное — готовность учиться и применять знания на практике!
Результат

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

  • Проектировать и создавать реляционные базы данных с нуля, используя язык SQL (DDL, DML).
  • Писать SQL-запросы любой сложности: от базовых SELECT до продвинутых конструкций с оконными функциями, CTE и рекурсивными запросами.
  • Управлять данными на профессиональном уровне: работать с транзакциями, хранимыми процедурами, триггерами, представлениями и оптимизировать производительность запросов.
  • Интегрировать базы данных с приложениями на Python, используя мощный ORM-фреймворк SQLAlchemy 2.0 (как Core, так и декларативные модели).
  • Проектировать декларативные ORM-модели, описывать связи между таблицами, управлять жизненным циклом сессий и транзакциями из кода Python.
  • Строить эффективные и безопасные запросы через SQLAlchemy ORM, диагностировать и решать проблему N+1.
  • Работать с асинхронным доступом к базе данных и выполнять миграции схемы с помощью Alembic.
  • Применять полученные знания в связке: использовать глубокое понимание SQL для написания оптимального кода на SQLAlchemy.
Аудитория

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

  • 🐍 Python-разработчики (Backend)
  • Которые хотят глубоко разобраться в работе с базами данных и профессионально использовать SQLAlchemy в своих проектах
  • 📊 Начинающие Data Engineers и аналитики
  • Которым необходимо уверенное владение SQL и понимание, как данные интегрируются в приложения
  • 🎓 Студенты IT-специальностей
  • Которые хотят получить практические навыки работы с данными для старта карьеры в разработке или аналитике
  • 🔧 Разработчики на других языках
  • Которые планируют перейти в Python-разработку и нуждаются в комплексном понимании работы с данными
  • 💼 IT-специалисты, расширяющие квалификацию
  • Администраторы, тестировщики, менеджеры проектов, желающие говорить на одном языке с разработчиками о данных
Содержание

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

21 занятие
ТемаЧто внутри
01[SQL-1] Вступление

- Знакомство
- О курсе

02[SQL-1] Установка рабочего окружения

- Установка MySQL сервера
- Работа в терминале
- Графические IDE (Workbench, DBeaver)
- Взаимодействие с сервером
- Контрольные вопросы
- Решаем задачи. Пишем SQL код

03[SQL-1] Проектирование БД (команды DDL)

- Первичные ключи
- Особенности типов данных и именование объектов
- Руководство по стилю SQL · SQL Style Guide
- Индексы
- Внешние ключи
- Подробнее про ALTER TABLE
- Особенности синтаксиса MySQL
- Виды связей между таблицами (1х1, 1хМ, МхМ)
- Таблицы-справочники
- ER-диаграмма
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

04[SQL-1] Работа с данными (команды DML, CRUD)

- Команда INSERT
- Команда SELECT
- Команда UPDATE
- Команда DELETE
- Бонус: Сервисы для генерации данных
- Импорт-экспорт данных
- Контрольные вопросы
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

05[SQL-2] Основы SELECT запросов

- Фильтрация (WHERE + LIKE)
- Сортировка (ORDER BY)
- Агрегирующие функции (COUNT, MIN, MAX, AVG, SUM)
- Группировка (GROUP BY)
- Фильтрация (HAVING)
- Отсутствие значения (NULL)
- Пейджинг (LIMIT + OFFSET)
- Условия, ветвления (IF, CASE)
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Контрольные вопросы. Часть 3
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

06[SQL-2] Сложные SELECT запросы

- Вложенные запросы (подзапросы)
- Объединения (JOIN) - Теория
- Объединения (CROSS JOIN, INNER JOIN)
- Объединения (LEFT JOIN, RIGHT JOIN)
- Объединения (FULL OUTER JOIN)
- Вложенные запросы VS объединения
- Соединения (UNION)
- Оконные функции
- Общие табличные выражения (CTE)
- Рекурсивные табличные выражения
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
- Решаем задачи. Пишем SQL код. Часть 3
- Решаем задачи. Пишем SQL код. Часть 4

07[SQL-3] Продвинутые фичи SQL

- Полнотекстовый поиск
- Представления (View)
- Хранимые процедуры
- Пользовательские функции
- Переменные
- Триггеры
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Контрольные вопросы. Часть 3
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

08[SQL-3] Транзакции

- Введение в транзакции
- Обработка исключений (ошибок)
- Уровни изоляции транзакций
- Блокировки таблиц
- Взаимная блокировка (deadlock)
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код

09[SQL-3] Права доступа

- Пользователи
- Роли
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код

10[SQL-3] Вопросы оптимизации

- Лишний JOIN
- Денормализация
- Настройки сервера
- Анализ запросов (EXPLAIN)
- Графический план исполнения запроса
- Исправление проблемных мест
- Графический план: показательные примеры
- Контрольные вопросы
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

11[SQL-3] Дополнительные темы

- Работа с логами
- Циклы
- Курсоры
- SQL инъекции
- Контрольные вопросы
- Решаем задачи. Пишем SQL код

12[SQLAlchemy] Введение, подключение и первый запрос

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

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

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

14[SQLAlchemy] Связи и каскады

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

15[SQLAlchemy] CRUD и транзакции в ORM

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

16[SQLAlchemy] Запросы: от базовых до CTE и окон

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

17[SQLAlchemy] Оптимизация ORM и управление данными

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

18[SQLAlchemy] SQLAlchemy Core

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

19[SQLAlchemy] Асинхронность

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

20[SQLAlchemy] Миграции с Alembic

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

21Завершение учебной программы

- Итоги

01[SQL-1] Вступление

- Знакомство
- О курсе

02[SQL-1] Установка рабочего окружения

- Установка MySQL сервера
- Работа в терминале
- Графические IDE (Workbench, DBeaver)
- Взаимодействие с сервером
- Контрольные вопросы
- Решаем задачи. Пишем SQL код

03[SQL-1] Проектирование БД (команды DDL)

- Первичные ключи
- Особенности типов данных и именование объектов
- Руководство по стилю SQL · SQL Style Guide
- Индексы
- Внешние ключи
- Подробнее про ALTER TABLE
- Особенности синтаксиса MySQL
- Виды связей между таблицами (1х1, 1хМ, МхМ)
- Таблицы-справочники
- ER-диаграмма
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

04[SQL-1] Работа с данными (команды DML, CRUD)

- Команда INSERT
- Команда SELECT
- Команда UPDATE
- Команда DELETE
- Бонус: Сервисы для генерации данных
- Импорт-экспорт данных
- Контрольные вопросы
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

05[SQL-2] Основы SELECT запросов

- Фильтрация (WHERE + LIKE)
- Сортировка (ORDER BY)
- Агрегирующие функции (COUNT, MIN, MAX, AVG, SUM)
- Группировка (GROUP BY)
- Фильтрация (HAVING)
- Отсутствие значения (NULL)
- Пейджинг (LIMIT + OFFSET)
- Условия, ветвления (IF, CASE)
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Контрольные вопросы. Часть 3
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

06[SQL-2] Сложные SELECT запросы

- Вложенные запросы (подзапросы)
- Объединения (JOIN) - Теория
- Объединения (CROSS JOIN, INNER JOIN)
- Объединения (LEFT JOIN, RIGHT JOIN)
- Объединения (FULL OUTER JOIN)
- Вложенные запросы VS объединения
- Соединения (UNION)
- Оконные функции
- Общие табличные выражения (CTE)
- Рекурсивные табличные выражения
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
- Решаем задачи. Пишем SQL код. Часть 3
- Решаем задачи. Пишем SQL код. Часть 4

07[SQL-3] Продвинутые фичи SQL

- Полнотекстовый поиск
- Представления (View)
- Хранимые процедуры
- Пользовательские функции
- Переменные
- Триггеры
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Контрольные вопросы. Часть 3
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

08[SQL-3] Транзакции

- Введение в транзакции
- Обработка исключений (ошибок)
- Уровни изоляции транзакций
- Блокировки таблиц
- Взаимная блокировка (deadlock)
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код

09[SQL-3] Права доступа

- Пользователи
- Роли
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код

10[SQL-3] Вопросы оптимизации

- Лишний JOIN
- Денормализация
- Настройки сервера
- Анализ запросов (EXPLAIN)
- Графический план исполнения запроса
- Исправление проблемных мест
- Графический план: показательные примеры
- Контрольные вопросы
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

11[SQL-3] Дополнительные темы

- Работа с логами
- Циклы
- Курсоры
- SQL инъекции
- Контрольные вопросы
- Решаем задачи. Пишем SQL код

12[SQLAlchemy] Введение, подключение и первый запрос

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

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

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

14[SQLAlchemy] Связи и каскады

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

15[SQLAlchemy] CRUD и транзакции в ORM

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

16[SQLAlchemy] Запросы: от базовых до CTE и окон

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

17[SQLAlchemy] Оптимизация ORM и управление данными

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

18[SQLAlchemy] SQLAlchemy Core

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

19[SQLAlchemy] Асинхронность

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

20[SQLAlchemy] Миграции с Alembic

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

21Завершение учебной программы

- Итоги

Организатор

Автор курса

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

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

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

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

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

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

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

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

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

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

Информация обновлена 7 сентября 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": курс для начинающих
Бесплатно
"Поколение Python": курс для начинающих

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

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

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

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

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

Онлайн4 занятий
Бесплатно
Старт в Python
Бесплатно
Старт в Python

Мы начнём с самого нуля и научимся, объявлять переменные, работать с типами данных и управлять потоком. Далее разберём создание функций и применим их на практике для создания конс…

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