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
Pokyny k cvičení
- Importuj
and_z modulusqlalchemy. - Vyber všechny záznamy z tabulky
census. - Přidej klauzuli where pro filtrování všech záznamů, jejichž
stateje'California'a jejichžsexnení'M'. - Spusť
stmtpřes připojení a projdi výsledný ResultProxy smyčkou – vypiš sloupceageasexz 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(____, ____)