Gegevens filteren die uit een Table zijn geselecteerd - Expressies
Naast de standaard Python-vergelijkingsoperatoren kun je ook methoden zoals
in_() gebruiken om krachtigere where()-clausules te maken. Je vindt een volledige lijst met
expressies in de SQLAlchemy-documentatie.
Met de methode in_() kun je, toegepast op een kolom, records opnemen waarbij de waarde van een kolom voorkomt in een lijst met mogelijke waarden. Bijvoorbeeld, where(census.columns.age.in_([20, 30, 40])) geeft alleen records terug voor mensen die precies 20, 30 of 40 jaar oud zijn.
In deze oefening ga je verder met de census-tabel en selecteer je de records van mensen uit de drie dichtstbevolkte staten. De lijst met die staten is al voor je aangemaakt.
Deze oefening maakt deel uit van de cursus
Introductie tot databases in Python
Oefeninstructies
- Selecteer alle records uit de
census-tabel. - Pas het argument van de
where-clausule aan omin_()te gebruiken, zodat alle records worden teruggegeven waarbij de waarde in de kolomcensus.columns.statevoorkomt in destates-lijst. - Loop over de ResultProxy
connection.execute(stmt)en print de kolommenstateenpop2000van elk record.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Define a list of states for which we want results
states = ['New York', 'California', 'Texas']
# Create a query for the census table: stmt
stmt = select(____)
# Append a where clause to match all the states in_ the list states
stmt = stmt.where(____)
# Loop over the ResultProxy and print the state and its population in 2000
for ____ in connection.execute(____):
print(____, ____)