Lecture d'un script SQL externe en Python
Question : Comment puis-je exécuter des requêtes SQL externes à partir d'un script Python , surtout lorsqu'il s'agit de non-création de table requêtes ?
Explication :
Pour exécuter des commandes SQL en Python, vous pouvez utiliser le module sqlite3. Ce module fournit une interface au système de gestion de base de données SQLite. Pour lire un script SQL externe, vous pouvez suivre ces étapes :
Exemple de code :
import sqlite3 # Open the database connection conn = sqlite3.connect('database.db') c = conn.cursor() # Read the SQL file with open('external_sql.sql', 'r') as f: sql_file = f.read() # Split the commands sql_commands = sql_file.split(';') # Execute the commands for command in sql_commands: try: c.execute(command) except sqlite3.OperationalError as e: print(f"Command skipped: {e}") # Commit the changes and close the connection conn.commit() c.close() conn.close()
Spécifique Requêtes :
Les requêtes 1.1 et 1.2 dans votre script SQL fourni sont des requêtes sans création de table. Pour les exécuter, vous pouvez utiliser directement la méthode c.execute plutôt que la requête SELECT* :
# Query 1.1 result = c.execute( """ SELECT ANAME,zookeepid FROM ANIMAL, HANDLES WHERE AID=ANIMALID; """ ) # Get the results rows = result.fetchall() # Print the results print("Query 1.1:") for row in rows: print(row) # Query 1.2 result = c.execute( """ SELECT ZNAME, SUM(TIMETOFEED) FROM ZOOKEEPER, ANIMAL, HANDLES WHERE AID=ANIMALID AND ZOOKEEPID=ZID GROUP BY zookeeper.zname; """ ) # Get the results rows = result.fetchall() # Print the results print("Query 1.2:") for row in rows: print(row)
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!