Gegevens filteren die uit een Table zijn geselecteerd - Geavanceerd
Je begint er echt handigheid in te krijgen! Met SQLAlchemy kun je ook voegwoorden zoals and_(), or_() en
not_() gebruiken om complexere filters te bouwen. Zo kunnen we bijvoorbeeld een set records
ophalen voor mensen in New York die 21 of 37 jaar oud zijn met de volgende code:
select([census]).where(
and_(census.columns.state == 'New York',
or_(census.columns.age == 21,
census.columns.age == 37
)
)
)
Een gelijkwaardige SQL-instructie zou bijvoorbeeld zijn:
SELECT * FROM census WHERE state = 'New York' AND (age = 21 OR age = 37)
Deze oefening maakt deel uit van de cursus
Introductie tot databases in Python
Oefeninstructies
- Importeer
and_uit de modulesqlalchemy. - Selecteer alle records uit de tabel
census. - Voeg een where-clausule toe om alle records te filteren waarvan
state'California'is en waarvansexniet'M'is. - Voer
stmtuit via de connection en itereer over de ResultProxy om de kolommenageensexvan elk record te printen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(____, ____)