Мы используем 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 занятий
890 ₽
Базы данных с нуля
−35%
Базы данных с нуля

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

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

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

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

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

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

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

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

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

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

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

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