Выборка данных в SQLAlchemy Core

Основные способы выборки данных из БД в SQLAlchemy Core

Выборка данных — одна из наиболее частых операций при работе с базами данных. SQLAlchemy Core предоставляет обширный и гибкий инструментарий для этой цели, позволяя извлекать информацию максимально эффективно и удобно. Давайте подробно рассмотрим этот процесс.

Базовая выборка

from sqlalchemy import create_engine, MetaData, Table, select

engine = create_engine('sqlite:///:memory:')
metadata = MetaData()
users = Table('users', metadata, autoload_with=engine)

sel = select([users])
result = engine.connect().execute(sel)

for row in result:
    print(row)

Здесь select([users]) создает запрос SELECT для таблицы users. Запрос выполняется с помощью engine.connect().execute(sel), и результат итерируется для вывода строк.

Добавление условий

sel = select([users]).where(users.c.id == 5)
result = engine.connect().execute(sel)
for row in result:
    print(row)

С помощью метода where(), вы можете указать условие для вашего запроса, аналогично SQL-оператору WHERE.

Сортировка

from sqlalchemy import desc

sel = select([users]).order_by(desc(users.c.name))
result = engine.connect().execute(sel)
for row in result:
    print(row)

Метод order_by() используется для сортировки результатов. В примере выше результаты сортируются по убыванию на основе имени.

Ограничение и смещение

sel = select([users]).limit(5).offset(10)
result = engine.connect().execute(sel)
for row in result:
    print(row)

Методы limit() и offset() позволяют ограничивать количество возвращаемых строк и пропускать определенное количество строк соответственно.

Группировка и агрегация

from sqlalchemy import func

sel = select([users.c.age, func.count(users.c.id)]).group_by(users.c.age)
result = engine.connect().execute(sel)
for row in result:
    print(row)

Здесь мы используем функции агрегации, такие как func.count(), и группируем результаты по определенным полям с помощью group_by().

Заключение

Выборка данных — ключевой этап в работе с реляционными базами данных, и SQLAlchemy Core предоставляет разработчикам мощные и гибкие инструменты для этой цели. Осваивая различные методы и функции выборки, вы можете максимально эффективно взаимодействовать с данными и извлекать из вашей базы данных максимум полезной информации.

Содержание: