Filtrer des données sélectionnées d'une table - Expressions
En plus des comparateurs Python standards, on peut aussi utiliser des méthodes comme
in_() pour créer des clauses where() plus puissantes. Vous trouverez la liste complète des
expressions dans la documentation de SQLAlchemy.
La méthode in_(), utilisée sur une colonne, permet d'inclure les enregistrements dont la valeur d'une colonne fait partie d'une liste de valeurs possibles. Par exemple, where(census.columns.age.in_([20, 30, 40])) ne retournera que les enregistrements pour des personnes ayant exactement 20, 30 ou 40 ans.
Dans cet exercice, vous allez continuer à travailler avec la table census et sélectionner les enregistrements des personnes provenant des trois États les plus densément peuplés. La liste de ces États a déjà été créée pour vous.
Cette activité fait partie du cours
Introduction aux bases de données en Python
Instructions de l’exercice
- Sélectionnez tous les enregistrements de la table
census. - Modifiez l'argument de la clause
wherepour utiliserin_()afin de retourner tous les enregistrements où la valeur dans la colonnecensus.columns.statese trouve dans la listestates. - Parcourez le ResultProxy
connection.execute(stmt)et affichez les colonnesstateetpop2000de chaque enregistrement.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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(____, ____)