ÎncepețiÎncepe gratuit

Filtrarea datelor selectate dintr-un tabel – Avansat

Te descurci din ce în ce mai bine! SQLAlchemy le permite utilizatorilor să folosească conjuncții precum and_(), or_() și not_() pentru a construi filtre mai complexe. De exemplu, putem obține un set de înregistrări pentru persoanele din New York care au 21 sau 37 de ani cu următorul cod:

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

O instrucțiune SQL echivalentă ar fi, de exemplu,

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

Acest exercițiu face parte din cursul

Introducere în baze de date în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Importă and_ din modulul sqlalchemy.
  • Selectează toate înregistrările din tabelul census.
  • Adaugă o clauză where pentru a filtra toate înregistrările al căror state este 'California' și al căror sex nu este 'M'.
  • Execută stmt în conexiune și parcurge ResultProxy pentru a afișa coloanele age și sex din fiecare înregistrare.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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(____, ____)
Editează și rulează codul