ホームページ >データベース >mysql チュートリアル >Python リストをパラメータとして使用して SQL データベースにクエリを実行するにはどうすればよいですか?
SQL クエリのパラメータとして Python リストを使用する
このガイドでは、Python リストを使用して SQL データベースに効率的にクエリを実行し、パラメーター値を指定する方法を説明します。この手法により、Python コードからの一連の値に基づいて柔軟なデータ取得が可能になります。
段階的なアプローチは次のとおりです:
SQL クエリを構築します: リスト値のプレースホルダーを使用して SQL クエリを作成します。 たとえば、「id」が Python リストにある「students」テーブルから名前を選択するには:
<code class="language-sql">SELECT name FROM students WHERE id IN (?)</code>
プレースホルダーの生成: Python リストをカンマ区切りのプレースホルダー文字列に変換します。 リスト [1, 5, 8]
の場合、これは次のようになります:
<code class="language-python">placeholders = ', '.join(['?'] * len([1, 5, 8])) # Results in '?, ?, ?'</code>
パラメータ化されたクエリを作成します: データベース ライブラリの書式設定メソッドを使用して、プレースホルダー文字列を SQL クエリに統合します。 以下の例では f-strings (Python 3.6) を使用しています。
<code class="language-python">query = f'SELECT name FROM students WHERE id IN ({placeholders})'</code>
クエリを実行します: Python リストをタプルとしてデータベース カーソルの execute()
メソッドに指定して、クエリを実行します。 これにより、パラメーターの適切なバインドが確保され、SQL インジェクションの脆弱性が防止されます。
<code class="language-python">cursor.execute(query, tuple([1, 5, 8])) results = cursor.fetchall()</code>
この方法では、値が整数、文字列、その他の互換性のあるデータ型であっても、Python リストの値を直接使用して SQL データベースから効率的かつ安全にデータを取得できます。 必ずコードを特定のデータベース ライブラリ (sqlite3
、psycopg2
など) に適応させてください。
以上がPython リストをパラメータとして使用して SQL データベースにクエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。