Операты SQLAlchemy Core

Основные операторы в SQLAlchemy Core

В 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 лет.

BETWEEN

Позволяет выбирать записи, значения которых находятся в определенном диапазоне.

stmt = select(users).where(users.c.age.between(20, 30))

Выберет пользователей в возрасте от 20 до 30 лет включительно.

IN

Позволяет выбирать записи, значения которых соответствуют любому из указанных.

stmt = select(users).where(users.c.name.in_(['John', 'Jane', 'Doe']))

Вернет пользователей с именами John, Jane или Doe.

LIKE

Используется для выполнения нечеткого поиска по строковым значениям.

stmt = select(users).where(users.c.name.like('Jo%'))

Запрос вернет всех пользователей, имена которых начинаются на "Jo".

AND/OR

Эти операторы позволяют комбинировать несколько условий.

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.

NOT

Оператор отрицания. Позволяет инвертировать условие.

stmt = select(users).where(not_(users.c.name == 'John'))

Выберет всех пользователей, кроме тех, у кого имя John.

Заключение

Операторы в SQLAlchemy Core предоставляют гибкие инструменты для создания запросов к базам данных. Они позволяют выражать сложные условия выборки, обновления или удаления данных, делая код чистым, понятным и поддерживаемым.

Содержание: