LoslegenKostenlos loslegen

Gefilterte Daten aus einer Table auswählen – Fortgeschritten

Du bekommst das wirklich gut hin! SQLAlchemy erlaubt dir außerdem, Konjunktionen wie and_(), or_() und not_() zu verwenden, um komplexere Filter zu bauen. Zum Beispiel können wir mit folgendem Code Datensätze für Personen in New York erhalten, die 21 oder 37 Jahre alt sind:

select([census]).where(
  and_(census.columns.state == 'New York',
       or_(census.columns.age == 21,
          census.columns.age == 37
         )
      )
  )

Eine äquivalente SQL-Anweisung wäre zum Beispiel:

SELECT * FROM census WHERE state = 'New York' AND (age = 21 OR age = 37)

Diese Übung ist Teil des Kurses

Einführung in Datenbanken mit Python

Kurs anzeigen

Anleitung zur Übung

  • Importiere and_ aus dem Modul sqlalchemy.
  • Wähle alle Datensätze aus der Tabelle census aus.
  • Hänge eine Where-Klausel an, um alle Datensätze zu filtern, deren state 'California' ist und deren sex nicht 'M' ist.
  • Führe stmt in der Verbindung aus und iteriere über den ResultProxy, um die Spalten age und sex aus jedem Datensatz auszugeben.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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