Gefilterte Daten aus einer Tabelle – Ausdrücke
Zusätzlich zu den üblichen Python-Vergleichsoperatoren können wir auch Methoden wie
in_() verwenden, um leistungsfähigere where()-Klauseln zu erstellen. Eine vollständige Liste der
Ausdrücke findest du in der SQLAlchemy-Dokumentation.
Die Methode in_() ermöglicht es uns, bei Anwendung auf eine Spalte nur die Datensätze einzuschließen, deren Spaltenwert in einer Liste möglicher Werte enthalten ist. Zum Beispiel gibt where(census.columns.age.in_([20, 30, 40])) nur Datensätze für Personen zurück, die genau 20, 30 oder 40 Jahre alt sind.
In dieser Übung arbeitest du weiter mit der Tabelle census und wählst die Datensätze für Personen aus den drei am dichtesten besiedelten Bundesstaaten aus. Die Liste dieser Bundesstaaten wurde bereits für dich erstellt.
Diese Übung ist Teil des Kurses
Einführung in Datenbanken mit Python
Anleitung zur Übung
- Wähle alle Datensätze aus der Tabelle
censusaus. - Passe das Argument der
where-Klausel so an, dassin_()verwendet wird, um alle Datensätze zurückzugeben, bei denen der Wert in der Spaltecensus.columns.statein der Listestatesenthalten ist. - Iteriere über den ResultProxy
connection.execute(stmt)und gib aus jedem Datensatz die Spaltenstateundpop2000aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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(____, ____)