Filtrarea datelor selectate dintr-un tabel – Expresii
Pe lângă operatorii standard de comparație din Python, putem folosi și metode precum
in_() pentru a crea clauze where() mai puternice. Poți consulta lista completă de
expresiidisponibile în Documentația SQLAlchemy.
Metoda in_(), aplicată pe o coloană, permite includerea înregistrărilor în care valoarea coloanei se regăsește într-o listă de valori posibile. De exemplu, where(census.columns.age.in_([20, 30, 40])) va returna doar înregistrările persoanelor care au exact 20, 30 sau 40 de ani.
În acest exercițiu, vei continua să lucrezi cu tabelul census și vei selecta înregistrările persoanelor din cele trei state cu cea mai mare densitate a populației. Lista acestor state a fost deja creată pentru tine.
Acest exercițiu face parte din cursul
Introducere în baze de date în Python
Instrucțiuni pentru exercițiu
- Selectează toate înregistrările din tabelul
census. - Modifică argumentul clauzei
wherepentru a folosiin_()și a returna toate înregistrările în care valoarea din coloanacensus.columns.statese află în listastates. - Parcurge cu o buclă ResultProxy-ul
connection.execute(stmt)și afișează coloanelestateșipop2000din fiecare înregistrare.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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(____, ____)