Aan de slagGa gratis aan de slag

Gegevens filteren die uit een Table zijn geselecteerd - Geavanceerd

Je begint er echt handigheid in te krijgen! Met SQLAlchemy kun je ook voegwoorden zoals and_(), or_() en not_() gebruiken om complexere filters te bouwen. Zo kunnen we bijvoorbeeld een set records ophalen voor mensen in New York die 21 of 37 jaar oud zijn met de volgende code:

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

Een gelijkwaardige SQL-instructie zou bijvoorbeeld zijn:

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

Deze oefening maakt deel uit van de cursus

Introductie tot databases in Python

Cursus bekijken

Oefeninstructies

  • Importeer and_ uit de module sqlalchemy.
  • Selecteer alle records uit de tabel census.
  • Voeg een where-clausule toe om alle records te filteren waarvan state 'California' is en waarvan sex niet 'M' is.
  • Voer stmt uit via de connection en itereer over de ResultProxy om de kolommen age en sex van elk record te printen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 bewerken en uitvoeren