Maison >base de données >tutoriel mysql >Comment puis-je exécuter des requêtes SQL à partir d'un script externe en Python et gérer des requêtes spécifiques à une table ?
Lorsque vous travaillez avec Python et SQL, il est courant de rencontrer le besoin d'exécuter des requêtes SQL stockées dans un script externe. Ce processus implique la lecture du script, sa décomposition en requêtes individuelles et leur exécution une par une.
import sqlite3 from sqlite3 import OperationalError conn = sqlite3.connect('csc455_HW3.db') c = conn.cursor() # Open and read the file as a single buffer fd = open('ZooDatabase.sql', 'r') sqlFile = fd.read() fd.close() # all SQL commands (split on ';') sqlCommands = sqlFile.split(';') # Execute every command from the input file for command in sqlCommands: # This will skip and report errors # For example, if the tables do not yet exist, this will skip over # the DROP TABLE commands try: c.execute(command) except OperationalError, msg: print "Command skipped: ", msg
Ce code lit efficacement le script SQL en une chaîne, le divise en commandes individuelles et les exécute en utilisant c.execute(). Cependant, le code restant dans l'extrait fourni est incomplet et doit être modifié pour gérer les requêtes spécifiques à la table.
Il manque au code l'étape où il exécute la table -requêtes spécifiques. Pour ce faire, vous pouvez modifier le code comme suit :
for table in ['ZooKeeper', 'Animal', 'Handles']: result = c.execute("SELECT ANAME,zookeepid FROM ANIMAL, HANDLES WHERE AID=ANIMALID;") rows = result.fetchall() print("\n--- TABLE", table, "\n") for desc in result.description: print(desc[0].rjust(22, ' '), end=", ") # Print column names print() for row in rows: for value in row: print(str(value).rjust(22, ' '), end=", ") # Print each value print()
Ce code parcourra les noms de table et exécutera les requêtes spécifiées pour chaque table. Il formate et imprime ensuite les détails du tableau, les noms de colonnes et les données de ligne.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!