Filtrowanie danych z tabeli – wyrażenia
Oprócz standardowych operatorów porównania Pythona możemy też korzystać z metod takich jak in_(), które pozwalają tworzyć bardziej rozbudowane klauzule where(). Pełną listę dostępnych wyrażeń znajdziesz w dokumentacji SQLAlchemy.
Metoda in_(), użyta na kolumnie, pozwala uwzględnić rekordy, w których wartość danej kolumny należy do podanej listy. Na przykład where(census.columns.age.in_([20, 30, 40])) zwróci wyłącznie rekordy dotyczące osób, które mają dokładnie 20, 30 lub 40 lat.
W tym ćwiczeniu będziesz nadal pracować z tabelą census i wybierać rekordy dotyczące mieszkańców trzech najgęściej zaludnionych stanów. Lista tych stanów została już dla ciebie przygotowana.
To ćwiczenie jest częścią kursu
Wprowadzenie do baz danych w Pythonie
Instrukcje do ćwiczenia
- Wybierz wszystkie rekordy z tabeli
census. - Zmodyfikuj argument klauzuli
where, używającin_(), aby zwrócić wszystkie rekordy, w których wartość kolumnycensus.columns.stateznajduje się na liściestates. - Przejdź pętlą po ResultProxy
connection.execute(stmt)i wypisz kolumnystateorazpop2000z każdego rekordu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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(____, ____)