ホームページ >データベース >mysql チュートリアル >Python で複数のテーブルに対して外部 SQL クエリを実行する方法

Python で複数のテーブルに対して外部 SQL クエリを実行する方法

Barbara Streisand
Barbara Streisandオリジナル
2025-01-02 17:32:38857ブラウズ

How to Execute External SQL Queries Against Multiple Tables in Python?

Python での外部 SQL スクリプトの実行

現在、Python 内で SQL クエリを実行し、外部 SQL ファイルを作成する方法の学習に取り組んでいます。 「Zookeeper」、「Handles」、「Animal」の 3 つのテーブルでデータを作成および操作します。さらに、ファイルには、これらのテーブルに対して実行される一連のクエリが含まれています。

Python 内から次のようなクエリを実行すると、混乱が生じます。

--1.1

SELECT ANAME,zookeepid
FROM ANIMAL, HANDLES
WHERE AID=ANIMALID;
--1.2

SELECT ZNAME, SUM(TIMETOFEED)
FROM ZOOKEEPER, ANIMAL, HANDLES
WHERE AID=ANIMALID AND ZOOKEEPID=ZID
GROUP BY zookeeper.zname;

これらのクエリは次のとおりです。テーブルを作成するのではなく、データを取得するため、挿入や削除とは異なるアプローチが必要です。 data.

解決策

これらのクエリを Python 内から実行するには、文字列フォーマットを使用して、テーブル名のプレースホルダー '%s' を実際の名前に動的に置き換えることができます。クエリするテーブル名。コードを変更する方法は次のとおりです。

result = c.execute("SELECT * FROM {} WHERE {} != {} AND {} != {};".format(table, column1, value1, column2, value2))

この例では、「{}」は table、column1、value1、column2、および value2 のプレースホルダーを表します。その後、これらのプレースホルダーを、実行するクエリに応じて適切な値に置き換えることができます。

代替方法

代替方法として、次のような関数を定義することも検討できます。はテーブル名とクエリを入力として受け取るため、文字列の書式設定が不要になります。このアプローチにより、柔軟性と可読性が向上します。

def execute_query(table, query):
    result = c.execute(query.format(table))
    # Do something with the results

for table in ['ZooKeeper', 'Animal', 'Handles']:
    query = "SELECT * FROM {} WHERE {} != {} AND {} != {};"
    execute_query(table, query)

このアプローチにより、クエリ自体を変更せずに、さまざまな条件に基づいてクエリを実行できます。

以上がPython で複数のテーブルに対して外部 SQL クエリを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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