В SQLAlchemy Core предоставляется множество операторов для создания SQL-запросов. Давайте подробнее рассмотрим основные из них.
Этот оператор позволяет сравнивать значения столбцов с определенным значением.
stmt = select(users).where(users.c.name == 'John')
Запрос выберет всех пользователей с именем John.
Позволяет выбирать записи, которые не равны указанному значению.
stmt = select(users).where(users.c.age != 25)
Запрос вернет всех пользователей, чей возраст не равен 25 годам.
Операторы для сравнения значений столбцов.
stmt = select(users).where(users.c.age > 30)
Выберет всех пользователей старше 30 лет.
Позволяет выбирать записи, значения которых находятся в определенном диапазоне.
stmt = select(users).where(users.c.age.between(20, 30))
Выберет пользователей в возрасте от 20 до 30 лет включительно.
Позволяет выбирать записи, значения которых соответствуют любому из указанных.
stmt = select(users).where(users.c.name.in_(['John', 'Jane', 'Doe']))
Вернет пользователей с именами John, Jane или Doe.
Используется для выполнения нечеткого поиска по строковым значениям.
stmt = select(users).where(users.c.name.like('Jo%'))
Запрос вернет всех пользователей, имена которых начинаются на "Jo".
Эти операторы позволяют комбинировать несколько условий.
from sqlalchemy import and_, or_
stmt = select(users).where(
and_(
users.c.age > 20,
or_(
users.c.name == 'John',
users.c.name == 'Jane'
)
)
)
Выберет пользователей старше 20 лет с именами John или Jane.
Оператор отрицания. Позволяет инвертировать условие.
stmt = select(users).where(not_(users.c.name == 'John'))
Выберет всех пользователей, кроме тех, у кого имя John.
Операторы в SQLAlchemy Core предоставляют гибкие инструменты для создания запросов к базам данных. Они позволяют выражать сложные условия выборки, обновления или удаления данных, делая код чистым, понятным и поддерживаемым.
Содержание: