Heim >Datenbank >MySQL-Tutorial >Wie führe ich externe SQL-Abfragen für mehrere Tabellen in Python aus?

Wie führe ich externe SQL-Abfragen für mehrere Tabellen in Python aus?

Barbara Streisand
Barbara StreisandOriginal
2025-01-02 17:32:38856Durchsuche

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

Externe SQL-Skripte in Python ausführen

Sie arbeiten derzeit daran zu lernen, wie Sie SQL-Abfragen in Python ausführen und verfügen über eine externe SQL-Datei, die das ermöglicht erstellt und manipuliert Daten in drei Tabellen: „Zookeeper“, „Handles“ und „Animal“. Darüber hinaus enthält die Datei eine Reihe von Abfragen, die für diese Tabellen ausgeführt werden sollen.

Verwirrung entsteht, wenn Abfragen wie die folgenden in Python ausgeführt werden:

--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;

Diese Abfragen sind Es werden keine Tabellen erstellt, sondern Daten abgerufen, was einen anderen Ansatz erfordert als das Einfügen oder Löschen Daten.

Lösung

Um diese Abfragen in Python auszuführen, können Sie die Zeichenfolgenformatierung verwenden, um den Tabellennamen-Platzhalter „%s“ dynamisch durch den tatsächlichen zu ersetzen Tabellenname, den Sie abfragen möchten. So können Sie Ihren Code ändern:

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

In diesem Beispiel stellt „{}“ die Platzhalter für Tabelle, Spalte1, Wert1, Spalte2 und Wert2 dar. Anschließend können Sie diese Platzhalter durch die entsprechenden Werte ersetzen, abhängig von der Abfrage, die Sie ausführen möchten.

Alternative Methode

Eine alternative Methode, die Sie in Betracht ziehen könnten, ist die Definition einer Funktion, die Verwendet den Tabellennamen und die Abfrage als Eingabe, sodass keine Zeichenfolgenformatierung erforderlich ist. Dieser Ansatz bietet mehr Flexibilität und Lesbarkeit.

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)

Mit diesem Ansatz können Sie Abfragen basierend auf unterschiedlichen Bedingungen ausführen, ohne die Abfrage selbst zu ändern.

Das obige ist der detaillierte Inhalt vonWie führe ich externe SQL-Abfragen für mehrere Tabellen in Python aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn