Урок 07. SQLAlchemy: запросы
⚡ Кратко: CRUD и запросы в SQLAlchemy 2.x
CRUD — Create, Read, Update, Delete — четыре базовые операции с БД. В SQLAlchemy 2.x запросы строятся через select() + session.execute() / session.scalars().
- Create:
session.add(obj),session.add_all([...]),session.commit() - Read:
session.scalars(select(User))— все,session.get(User, id)— по id - Update: получить объект → изменить атрибут →
session.commit() - Delete:
session.delete(obj)→session.commit() - Фильтр:
.where(User.age > 25),.like(),.between(),.in_() - Сортировка:
.order_by(User.age),.order_by(desc(User.age))
Топ-3 ошибки: 1) Забыть commit(). 2) Перепутать where() / filter(). 3) Использовать устаревший session.query() в новом проекте.
📖 О чём этот урок
В этом уроке изучаются CRUD-операции в SQLAlchemy и построение запросов: фильтрация, сортировка, логические условия. Лекция охватывает оба стиля — устаревший 1.x (session.query()) и современный 2.x (select()).
Что изучим
- CRUD: Create (add/add_all), Read (get по ключу, выборки), Update, Delete
- Методы извлечения данных:
.all(),.first(),.one(),.one_or_none() - Фильтрация:
where()/filter(), операторы сравнения,like(),between(),in_() - Логические условия:
and_(),or_(),not_() - Сортировка:
order_by(),desc(), многоуровневая сортировка - Сравнение 1.x (лекция) и 2.x API
📚 Что повторить перед изучением
- ← Урок 06: Практикум 2 — Pydantic и SQLAlchemy
- Урок 05: SQLAlchemy — модели и поля
- Что такое CRUD — базовые операции с данными
- Что такое сессия SQLAlchemy: add → commit → close
🎯 Что изучать дальше
- → Урок 08: Summary session 2 — повторение SQLAlchemy
- Агрегации:
func.count(),func.sum(),group_by(),having() - JOIN-запросы через
join() - Миграции с Alembic