Фильтрация данных из таблицы — выражения
Помимо стандартных операторов сравнения Python, можно использовать такие методы, как in_(), чтобы создавать более гибкие условия where(). Полный список доступных выражений можно найти в документации SQLAlchemy.
Метод in_(), применённый к столбцу, позволяет отбирать записи, в которых значение столбца входит в список допустимых значений. Например, where(census.columns.age.in_([20, 30, 40])) вернёт только записи о людях в возрасте ровно 20, 30 или 40 лет.
В этом упражнении вы продолжите работу с таблицей census и выберете записи о жителях трёх штатов с наибольшей плотностью населения. Список этих штатов уже создан для вас.
Это упражнение является частью курса
Введение в базы данных на Python
Инструкции к упражнению
- Выберите все записи из таблицы
census. - Измените аргумент условия
whereтак, чтобы использоватьin_()для возврата всех записей, в которых значение столбцаcensus.columns.stateвходит в списокstates. - Переберите ResultProxy
connection.execute(stmt)в цикле и выведите значения столбцовstateиpop2000для каждой записи.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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(____, ____)