ホームページ >データベース >mysql チュートリアル >Python で複数のテーブルに対して外部 SQL クエリを実行する方法
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 サイトの他の関連記事を参照してください。