Maison > base de données > tutoriel mysql > Comment exécuter des requêtes SQL externes (y compris des requêtes de création sans table) en Python ?

Comment exécuter des requêtes SQL externes (y compris des requêtes de création sans table) en Python ?

Patricia Arquette
Libérer: 2024-12-28 02:35:08
original
841 Les gens l'ont consulté

How to Execute External SQL Queries (Including Non-Table Creation Queries) in Python?

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 :

  1. Ouvrir et lire le fichier : Ouvrez le fichier SQL et lisez son contenu dans une chaîne.
  2. Divisez les commandes : Divisez la chaîne en une liste de commandes SQL individuelles, séparées par ;.
  3. Exécuter les commandes : Parcourez la liste des commandes et exécutez-les une par une à l'aide de la méthode c.execute(command) de l'objet curseur.

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()
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal