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
Instrucțiuni pentru exercițiu
- Importă
and_din modululsqlalchemy. - Selectează toate înregistrările din tabelul
census. - Adaugă o clauză where pentru a filtra toate înregistrările al căror
stateeste'California'și al cărorsexnu este'M'. - Execută
stmtîn conexiune și parcurge ResultProxy pentru a afișa coloaneleageșisexdin 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(____, ____)