Filtrera data från en tabell – uttryck
Utöver de vanliga jämförelseoperatorerna i Python kan vi också använda metoder som
in_() för att skapa mer kraftfulla where()-satser. Du hittar en fullständig lista över
uttryck i SQLAlchemy-dokumentationen.
Metoden in_(), när den används på en kolumn, gör det möjligt att inkludera poster där kolumnens värde finns med i en lista av möjliga värden. Till exempel returnerar where(census.columns.age.in_([20, 30, 40])) bara poster för personer som är exakt 20, 30 eller 40 år gamla.
I den här övningen fortsätter du att arbeta med tabellen census och väljer poster för personer från de tre folkrikaste delstaterna. Listan med dessa delstater har redan skapats åt dig.
Den här övningen är en del av kursen
Introduktion till databaser i Python
Övningsinstruktioner
- Välj alla poster från tabellen
census. - Ändra argumentet i
where-satsen så attin_()används för att returnera alla poster där värdet i kolumnencensus.columns.statefinns i listanstates. - Loopa över ResultProxy:n
connection.execute(stmt)och skriv ut kolumnernastateochpop2000från varje post.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(____, ____)