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 ?

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 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-30 03:54:08372parcourir

How Can I Execute SQL Queries from an External Script in Python and Handle Table-Specific Queries?

Exécuter des requêtes SQL à partir d'un script externe en Python

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.

Code fourni

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.

Exécution des 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn