ホームページ >データベース >mysql チュートリアル >Python で外部ファイルから SQL クエリを効率的に実行するにはどうすればよいですか?

Python で外部ファイルから SQL クエリを効率的に実行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-29 22:35:10459ブラウズ

How Can I Efficiently Execute SQL Queries from an External File in Python?

Python での外部 SQL ファイルのクエリ

混乱:

外部ファイルから SQL クエリを実行する場合、一部の開発者は線で混乱する例:

result = c.execute("SELECT * FROM %s;" % table);

説明:

Python の文字列フォーマットを使用すると、プレースホルダー (%s) を値に動的に置き換えることができます。この場合、%s はテーブル名を表す文字列であるテーブル変数の値に置き換えられます。したがって、テーブルが「Animal」の場合、クエリは「SELECT * FROM Animal;」になります。

提供されたコードの使用:

提供された Python コードには関数が含まれています外部ファイル内のすべての SQL コマンドを実行するために使用できるexecuteScriptsFromFile。

def executeScriptsFromFile(filename):
    with open(filename, 'r') as fd:
        sqlFile = fd.read()
    sqlCommands = sqlFile.split(';')

    for command in sqlCommands:
        try:
            c.execute(command)
        except OperationalError as msg:
            print("Command skipped: ", msg)

を使用できます。この関数は、zookeeper.sql ファイル内の SQL クエリを実行します:

executeScriptsFromFile('zookeeper.sql')

クエリ 1.1 および 1.2:

クエリ 1.1 と 1.2 は、すでにZookeeper.sql ファイル。上記のコードは、ファイルがロードされるときにそれらを実行します。

完全なコード:

executeScriptsFromFile 関数とテーブル ループ コードを組み合わせると、完全な Python コードを簡素化できます。以下のように:

import sqlite3
from sqlite3 import OperationalError

conn = sqlite3.connect('csc455_HW3.db')
c = conn.cursor()

executeScriptsFromFile('zookeeper.sql')

for table in ['ZooKeeper', 'Animal', 'Handles']:
    result = c.execute("SELECT * FROM %s;" % table)
    rows = result.fetchall()
    print("\n--- TABLE ", table, "\n")
    for desc in result.description:
        print(desc[0].rjust(22, ' '), end=',')
    print()  # End the line with column names

    for row in rows:
        for value in row:
            print(str(value).rjust(22, ' '))
        print()

c.close()
conn.close()

以上がPython で外部ファイルから SQL クエリを効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。