Python での SQL 文
いよいよ SQL クエリを書いてみましょう。この演習では、ホテルデータベースに対してクエリを実行し、南部にある高級ホテルをすべて抽出します。
データベースへの接続とカーソル c はあらかじめ用意されています。
動画で Alan が説明したように、SQL インジェクションには注意が必要です。ここでは、.execute() メソッドへの追加のタプル引数としてパラメータを安全に渡す方法を使います。
この方法により、悪意のあるコードがクエリに混入されるのを防ぐことができます。
この演習はコースの一部です
Python でチャットボットを作る
演習の手順
areaとpriceに対応する文字列"south"と"hi"を持つタプルtを定義します。- カーソルの
.execute()メソッドを使ってクエリを実行します。areaが"south"かつ price が"hi"であるhotelsのすべてのフィールドを取得することが目的です。 - カーソルの
.fetchall()メソッドを使って結果を表示します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import sqlite3
import sqlite3
# Open connection to DB
conn = sqlite3.connect('hotels.db')
# Create a cursor
c = conn.cursor()
# Define area and price
area, price = "____", "____"
t = (____, ____)
# Execute the query
c.____('SELECT ____ FROM ____ WHERE ____=____ AND ____=____', ____)
# Print the results
print(____)