Heim >Datenbank >MySQL-Tutorial >Wie führe ich externe SQL-Abfragen für mehrere Tabellen in Python aus?
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!