ПочатиПочніть безкоштовно

Фільтрування даних, вибраних із Table — розширений рівень

Чудово виходить! SQLAlchemy також дозволяє використовувати сполучники, як-от and_(), or_() та not_(), щоб будувати складніші фільтри. Наприклад, ми можемо отримати набір записів для людей у Нью-Йорку, яким 21 або 37 років, за допомогою такого коду:

select([census]).where(
  and_(census.columns.state == 'New York',
       or_(census.columns.age == 21,
          census.columns.age == 37
         )
      )
  )

Еквівалентний SQL-запит, наприклад, буде таким:

SELECT * FROM census WHERE state = 'New York' AND (age = 21 OR age = 37)

Ця вправа є частиною курсу

Вступ до баз даних у Python

Переглянути курс

Інструкції до вправи

  • Імпортуйте and_ з модуля sqlalchemy.
  • Виберіть усі записи з таблиці census.
  • Додайте вираз where, щоб відфільтрувати всі записи, у яких state дорівнює 'California', а sexне 'M'.
  • Виконайте stmt у підключенні та проітеруйтеся по ResultProxy, щоб вивести стовпці age і sex для кожного запису.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Import and_
from ____ import ____

# Build a query for the census table: stmt
stmt = select(____)

# Append a where clause to select only non-male records from California using and_
stmt = stmt.where(
    # The state of California with a non-male sex
    ____(census.columns.state == ____,
         census.columns.sex != ____
         )
)

# Loop over the ResultProxy printing the age and sex
for result in ____:
    print(____, ____)
Редагувати та запускати код