Začněte nyníZačněte zdarma

Filtrování dat z tabulky – pokročilé

Jde ti to skvěle! SQLAlchemy také umožňuje používat konjunkce jako and_(), or_() a not_() pro sestavování složitějších filtrů. Například sadu záznamů pro osoby z New Yorku, kterým je 21 nebo 37 let, získáš tímto kódem:

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

Ekvivalentní SQL dotaz by vypadal například takto:

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

Toto cvičení je součástí kurzu

Introduction to Databases in Python

Zobrazit kurz

Pokyny k cvičení

  • Importuj and_ z modulu sqlalchemy.
  • Vyber všechny záznamy z tabulky census.
  • Přidej klauzuli where pro filtrování všech záznamů, jejichž state je 'California' a jejichž sex není 'M'.
  • Spusť stmt přes připojení a projdi výsledný ResultProxy smyčkou – vypiš sloupce age a sex z každého záznamu.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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(____, ____)
Upravit a spustit kód