LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Wähle alle Datensätze aus der Tabelle census aus.
  • Passe das Argument der where-Klausel so an, dass in_() verwendet wird, um alle Datensätze zurückzugeben, bei denen der Wert in der Spalte census.columns.state in der Liste states enthalten ist.
  • Iteriere über den ResultProxy connection.execute(stmt) und gib aus jedem Datensatz die Spalten state und pop2000 aus.

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(____, ____)
Code bearbeiten und ausführen