TP No 14 Interrogation D'une BDD
TP No 14 Interrogation D'une BDD
TP No 14 Interrogation D'une BDD
Dans ce TP, on manipule une base de données via Python. Cela nécessite l’import de la librairie sqlite3.
Il faut alors créer un objet de connection vers une base de données, par une instruction :
connection = sqlite3.connect(’nom_de_la_base.db’)
S’il n’existe pas de base de ce nom, il sera créé une base vide. Si le fichier n’est pas dans le répertoire de travail, il faut
indiquer son chemin.
L’étape suivante est de définir un « curseur » vers cet objet de connection : c’est ce curseur qui va permettre de
récupérer le résultat d’une requête :
cur = connection.cursor()
Toutes les requêtes SQL envoyés à la base (que ce soit pour la création, la modification, ou le questionnement de la
base de données) le sont alors par l’instruction suivante :
Ainsi, via cur.execute, on peut envoyer les requêtes une à une, sous forme d’une chaîne de caractères (les « raw
string » sont plus prudents, et permettent notamment de faire facilement des retours à la ligne, ce qui est appréciable
dans les requêtes un peu longues).
connection.commit()
connection.close()
À l’issue de chaque requête, cur est un objet itérable, les termes de l’itération étant des tuples de valeurs issues de la
selection. Pour afficher le résultat, il convient donc d’afficher ces tuples les uns après les autres, à l’aide d’une boucle
sur cet objet itérable.
La base de donnée étudiée ici est donnée par le fichier ma_banque.db, à récupérer sur ma page web ou sur une clé.
Les tables de cette base ont été créées par les instructions SQL suivantes :
1
CREATE TABLE IF NOT EXISTS compte (
idcompte int(5) NOT NULL,
idproprietaire int(5) NOT NULL REFERENCES client,
type varchar(128) NOT NULL,
PRIMARY KEY (idcompte)
);
On fera un affichage des réponses à l’écran, ainsi qu’une sauvegarde ligne par ligne dans un fichier reponse_mabanque.txt,
les réponses aux différentes questions étant mises les unes derrière les autres, séparées par une ligne blanche et une
ligne indiquant le numéro de la question. La manipulation des fichiers est expliquée dans le chapitre 2 de votre cours.