0% ont trouvé ce document utile (0 vote)
7 vues13 pages

MySQL et Python : Guide de connexion et requêtes

Le document explique comment utiliser MySQL avec Python, en décrivant la connexion à la base de données, la création d'un curseur, et les opérations de lecture et d'écriture de données. Il aborde également les transactions avec commit et rollback, ainsi que la gestion des ressources. Enfin, il présente des fonctionnalités avancées comme l'insertion multiple et la lecture avec des dictionnaires.

Transféré par

Abdellah Boudaim
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues13 pages

MySQL et Python : Guide de connexion et requêtes

Le document explique comment utiliser MySQL avec Python, en décrivant la connexion à la base de données, la création d'un curseur, et les opérations de lecture et d'écriture de données. Il aborde également les transactions avec commit et rollback, ainsi que la gestion des ressources. Enfin, il présente des fonctionnalités avancées comme l'insertion multiple et la lecture avec des dictionnaires.

Transféré par

Abdellah Boudaim
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

MySQL et Python

• Programme Python : étudiant.


• Base de Données MySQL : Une bibliothèque
immense.
• La connection : Votre carte d'accès à la
bibliothèque. Elle vous ouvre la porte, mais ne
trouve pas les livres.
• Le cursor : Votre bibliothécaire personnel.
Vous lui donnez une demande (requête SQL),
il la traite et vous ramène les résultats.
Connexion au SGBD
• On utilise la fonction connect() du module
[Link].
• Elle prend en paramètres les informations
d'identification.
• Elle renvoie un objet connection si la
connexion réussit.
Code
import [Link]
try:
connection = [Link](
host='localhost', user='mon_user',
password='mon_mot_de_passe',
database='ma_base_de_donnees' )
print("Connexion réussie !")
except [Link] as err:
print(f"Erreur de connexion : {err}")
Créer le Curseur
• Le curseur est créé à partir de l'objet
connection.
• C'est l'intermédiaire qui enverra les
commandes SQL et récupérera les résultats.
# ... (code de connexion précédent) ...
if connection.is_connected():
cursor = [Link]()
print("Curseur créé avec succès.")

[Link]()
Lire des Données (SELECT)
• [Link](requete_sql) : Envoie la
requête au serveur.
• [Link]() : Récupère toutes les lignes
de résultats dans une liste de tuples.
# ... (connexion et création du curseur) ...
[Link]("SELECT id, nom FROM utilisateurs")
resultats = [Link]()
print("Liste des utilisateurs :")
for ligne in resultats:
print(f"ID: {ligne[0]}, Nom: {ligne[1]}« )
Écrire des Données (INSERT)
• Même Syntaxe : [Link](requete_sql)
• MAIS ce n'est pas encore permanent !
# ... (connexion et création du curseur) ...
sql_insert = "INSERT INTO utilisateurs (nom, email)
VALUES (%s, %s)"
nouvel_utilisateur = ('Charlie', 'charlie@[Link]')

[Link](sql_insert, nouvel_utilisateur)

print("Utilisateur ajouté au panier...")


# Et maintenant ? On le valide ?
Transaction : commit() et rollback()
• execute() = Mettre dans le panier. C'est
temporaire.
• [Link]() = Payer. L'action devient
permanente et irréversible.
• [Link]() = Abandonner le
panier. Toutes les actions depuis le dernier
commit() sont annulées.
try:
# ... (code d'insertion) ...
[Link](sql_insert, nouvel_utilisateur)

# Tout s'est bien passé, on valide !


[Link]()
print("Utilisateur enregistré avec succès !")

except:
# Une erreur est survenue, on annule tout !
[Link]()
print("Une erreur a eu lieu, l'insertion a été annulée.")
Nettoyer : Fermer les Ressources
• Il est crucial de fermer le curseur puis la
connexion.
• Cela libère de la mémoire sur le serveur
MySQL et dans votre application.
• Le bloc finally est parfait pour cela, car il
s'exécute en cas d’erreur ou non.
try:
connection = [Link](...)
cursor = [Link]()
# ... opérations ...
[Link]()
except Error as e:
if connection: [Link]()
print(e)
finally:
if cursor: [Link]()
if connection and connection.is_connected():
[Link]()
print("Ressources fermées.")
CREATE et READ Avancé
• executemany() : Insérer plusieurs lignes en une seule
fois (plus performant).
• WHERE : Sélectionner des lignes spécifiques.
• dictionary=True : Rendre les résultats plus lisibles en
utilisant des dictionnaires.
# 1. Insertion multiple
sql = "INSERT INTO utilisateurs (nom, email) VALUES
(%s, %s)"
utilisateurs = [(‘Ali', 'd@com'), ('Eve', 'e@[Link]')]
[Link](sql, utilisateurs)
# 2. Lecture avec dictionnaire
cursor = [Link](dictionary=True)
[Link]("SELECT nom, email FROM utilisateurs
WHERE id = %s", (1,))
utilisateur = [Link]()
# Renvoie {'nom': 'Ali', 'email': '...'}
print(utilisateur['email']) # Plus lisible que
utilisateur[1]
UPDATE et DELETE
• Les syntaxes UPDATE ... SET ... WHERE ... et
DELETE FROM ... WHERE ....
# UPDATE : Mettre à jour l'email de l'utilisateur avec l'ID 2
sql_update = "UPDATE utilisateurs SET email = %s WHERE (id
= %s)"
[Link](sql_update, ('[Link]@[Link]', 2))

# DELETE : Supprimer l'utilisateur avec l'ID 3


sql_delete = "DELETE FROM utilisateurs WHERE id = %s"
[Link](sql_delete, (3,))

[Link]()

Vous aimerez peut-être aussi