Adaptateur MySQL
La seule différence avec le module en pur Python est la syntaxe pour identifier une Base et la nécessité de spécifier le type des champs quand on crée une base
Pour rester compatible avec le vocabulaire de MySQL, le module définit trois classes, Connection, Database et Table
Connection(hote,identifiant,mot_de_passe) : renvoie une connectin au serveur MySQL
Les instances de Connection supportent 2 méthodes :
databases() : renvoie la liste des noms de bases de données
create(nom_bdd) : crée une base de données appelée nom_bdd et renvoie l'instance de la classe Database
Database(nom_bdd, connection) : renvoie la base de données nom_bdd pour la connection spécifiée
Les instances de Database supportent 2 méthodes:
tables() : renvoie la liste des noms de tables dans la base de données
drop() : efface la base de données
Table(nom_table,bdd) : nom_table est le nom de la table, bdd est l'instance de Database
Pour manipuler une table, on utilise la même syntaxe que dans PyDbLite :
- pour créer une tables il faut spécifier un type de champ de MySQL :
INTEGER, REAL, DATETIME, CHAR, BLOB,etc. :
table.create(('nom','CHAR(20)'),('age','INTEGER'),('taille','REAL'))
- s'il faut fournir d'autres informations, les mettre dans un second argument, en utilisant la syntaxe SQL propre à MySQL :
table.create(('recid','INTEGER PRIMARY KEY AUTO_INCREMENT'),
('date','TIMESTAMP DEFAULT CURRENT_TIMESTAMP'))
Pour l'insertion, la sélection, la mise à jour et la suppression, la syntaxe est la même que ci-dessus
La sélection par identifiant d'enregistrement ne fonctionne que si un champ INTEGER PRIMARY KEY AUTO_INCREMENT est présent dans la table ; les fonctions delete() et update() requièrent aussi ce champ
L'instance de Base a un attribute cursor, ce qui permet d'exécuter des commandes SQL par db.cursor.execute(expression_sql) et récupérer le résultat par results = db.cursor.fetchall()
|