テーブルから選択したデータをフィルタする - 基本
データベースに接続できたので、次はクエリのフィルタリングを練習しましょう。
動画でも説明したとおり、where() 句はステートメントが返すデータを絞り込むために使います。たとえば、census テーブルから性別が女性('F')のレコードをすべて選択するには、次のように書きます。
select([census]).where(census.columns.sex == 'F')
== に加えて、where() 句の中では基本的にあらゆる Python の比較演算子(<= や != など)を使えます。
この演習はコースの一部です
Pythonで学ぶデータベース入門
演習の手順
select()にcensusをリストとして渡し、censusテーブルのすべてのレコードを選択します。stmtにwhere句を追加し、stateが'New York'のレコードだけを返すようにします。connectionの.execute()でステートメントstmtを実行し、.fetchall()で結果を取得します。resultsを反復処理し、各レコードからage、sex、pop2000列を出力します。たとえば、result.ageでresultのageを出力できます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create a select query: stmt
stmt = ____
# Add a where clause to filter the results to only those for New York : stmt_filtered
stmt = stmt.____
# Execute the query to retrieve all the data returned: results
results = ____
# Loop over the results and print the age, sex, and pop2000
for ___ in ____:
print(result.age, ____, ____)