Maison > base de données > tutoriel mysql > Comment exécuter des requêtes SQL externes sur plusieurs tables en Python ?

Comment exécuter des requêtes SQL externes sur plusieurs tables en Python ?

Barbara Streisand
Libérer: 2025-01-02 17:32:38
original
855 Les gens l'ont consulté

How to Execute External SQL Queries Against Multiple Tables in Python?

Exécuter des scripts SQL externes en Python

Vous travaillez actuellement à apprendre à exécuter des requêtes SQL dans Python et disposez d'un fichier SQL externe qui crée et manipule des données dans trois tables : « Zookeeper », « Handles » et « Animal ». De plus, le fichier contient une série de requêtes à exécuter sur ces tables.

La confusion survient lors de l'exécution de requêtes comme celles-ci à partir de Python :

--1.1

SELECT ANAME,zookeepid
FROM ANIMAL, HANDLES
WHERE AID=ANIMALID;
Copier après la connexion
--1.2

SELECT ZNAME, SUM(TIMETOFEED)
FROM ZOOKEEPER, ANIMAL, HANDLES
WHERE AID=ANIMALID AND ZOOKEEPID=ZID
GROUP BY zookeeper.zname;
Copier après la connexion

Ces requêtes sont ne pas créer de tableaux mais plutôt récupérer des données, ce qui nécessite une approche différente de celle de l'insertion ou de la suppression data.

Solution

Pour exécuter ces requêtes à partir de Python, vous pouvez utiliser le formatage de chaîne pour remplacer dynamiquement l'espace réservé du nom de table '%s' par le réel nom de la table que vous souhaitez interroger. Voici comment modifier votre code :

result = c.execute("SELECT * FROM {} WHERE {} != {} AND {} != {};".format(table, column1, value1, column2, value2))
Copier après la connexion

Dans cet exemple, « {} » représente les espaces réservés pour la table, la colonne 1, la valeur1, la colonne2 et la valeur2. Vous pouvez ensuite remplacer ces espaces réservés par les valeurs appropriées en fonction de la requête que vous souhaitez exécuter.

Méthode alternative

Une méthode alternative que vous pourriez envisager consiste à définir une fonction qui prend le nom de la table et la requête en entrée, éliminant ainsi le besoin de formatage de chaîne. Cette approche offre plus de flexibilité et de lisibilité.

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

Cette approche vous permet d'exécuter des requêtes basées sur différentes conditions sans modifier la requête elle-même.

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