- 1 1. Intégration de Python et MySQL : Introduction
- 2 2. Configuration de l’environnement pour l’intégration de Python et MySQL
- 3 3. Étapes de base pour connecter Python à MySQL
- 4 4. Opérations SQL de base
- 5 5. Opérations avancées
- 6 6. Exemples pratiques de Python et MySQL
- 7 7. Résumé et prochaines étapes
1. Intégration de Python et MySQL : Introduction
Python est un langage de programmation très flexible qui peut interagir avec divers systèmes de gestion de bases de données (SGBD). Parmi eux, MySQL est largement utilisé comme base de données relationnelle open‑source, et lorsqu’il est combiné avec Python, il permet de puissantes capacités de manipulation de données.
Cet article explique comment connecter Python à MySQL et réaliser des opérations de base sur la base de données telles que l’insertion, la récupération, la mise à jour et la suppression de données.
2. Configuration de l’environnement pour l’intégration de Python et MySQL
Tout d’abord, vous devez préparer l’environnement pour connecter Python à MySQL. Cette section décrit l’installation et la configuration des logiciels requis.
2.1 Installation de MySQL
Les étapes d’installation de MySQL varient selon votre système d’exploitation. Voici des méthodes d’installation simples pour chaque OS :
- Windows : Téléchargez l’installateur depuis le site officiel de MySQL et suivez le guide d’installation.
- Mac : Utilisez Homebrew avec la commande
brew install mysql. - Linux : Sur les systèmes basés sur Debian, utilisez
sudo apt-get install mysql-server.
2.2 Configuration de l’environnement Python
Ensuite, installez les bibliothèques nécessaires dans votre environnement Python. Pour connecter Python à MySQL, vous aurez besoin de l’une des bibliothèques suivantes :
- mysql-connector-python : Le connecteur MySQL officiel fourni par Oracle.
- PyMySQL : Une bibliothèque pure Python compatible avec MySQLdb.
L’installation est simple – il suffit d’exécuter la commande suivante :
pip install mysql-connector-python
Ou, si vous préférez utiliser PyMySQL, exécutez cette commande :
pip install pymysql
2.3 Différences entre les bibliothèques
mysql-connector-python est le connecteur MySQL officiel, offrant des performances robustes et un support complet. En revanche, PyMySQL est léger et constitue un bon choix lorsque la compatibilité avec MySQLdb est requise. Le choix dépend des exigences de votre projet.

3. Étapes de base pour connecter Python à MySQL
Connecter Python à MySQL est simple. Cette section explique les étapes pour se connecter à une base de données MySQL et travailler avec les tables.
3.1 Connexion à une base de données MySQL
Voici un exemple basique utilisant mysql-connector-python pour se connecter à MySQL :
import mysql.connector
# MySQL connection details
conn = mysql.connector.connect(
host='localhost',
user='root',
password='password',
database='test_db'
)
# Check connection
if conn.is_connected():
print("Successfully connected to MySQL server!")
Ce code utilise la fonction mysql.connector.connect() pour se connecter à un serveur MySQL local. En cas de succès, un message de confirmation sera affiché.
3.2 Dépannage des problèmes de connexion
Si la connexion échoue, les erreurs possibles incluent :
- Erreur d’authentification : Le nom d’utilisateur ou le mot de passe peut être incorrect.
- Erreur de connexion à l’hôte : Vérifiez que le serveur est en cours d’exécution et contrôlez les paramètres du pare‑feu.
Pour éviter que votre programme ne plante, gérez les erreurs avec un bloc try-except :
try:
conn = mysql.connector.connect(...)
except mysql.connector.Error as err:
print(f"Error: {err}")
4. Opérations SQL de base
Une fois connecté à MySQL, l’étape suivante consiste à effectuer des opérations SQL de base. Dans cette section, nous couvrirons comment insérer, récupérer, mettre à jour et supprimer des données.
4.1 Insertion de données
Pour insérer de nouveaux enregistrements dans une table, vous pouvez utiliser l’instruction SQL suivante :
cursor = conn.cursor()
# Insert query
insert_query = "INSERT INTO users (username, email) VALUES (%s, %s)"
data = ("user1", "user1@example.com")
# Execute query
cursor.execute(insert_query, data)
# Commit changes
conn.commit()
4.2 Récupération de données
Pour récupérer des données, utilisez une instruction SELECT. Voici un exemple qui récupère tous les enregistrements d’utilisateurs :
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
# Display results
for row in rows:
print(row)
4.3 Mise à jour de données
Pour mettre à jour des enregistrements existants, utilisez l’instruction UPDATE :
update_query = "UPDATE users SET email = %s WHERE username = %s"
cursor.execute(update_query, ("new_email@example.com", "user1"))
conn.commit()
4.4 Suppression de données
Pour supprimer les enregistrements inutiles, utilisez l’instruction DELETE :
delete_query = "DELETE FROM users WHERE username = %s"
cursor.execute(delete_query, ("user1",))
conn.commit()

5. Opérations avancées
Ensuite, examinons des opérations plus avancées telles que la gestion des transactions et les instructions préparées.
5.1 Gestion des transactions
Lors de l’exécution de plusieurs opérations de base de données en groupe, avec la possibilité d’annuler si nécessaire, on utilise les transactions :
try:
cursor.execute("...")
conn.commit() # Commit if successful
except:
conn.rollback() # Roll back if an error occurs
5.2 Utilisation des instructions préparées
Pour prévenir les injections SQL, il est recommandé d’utiliser des instructions préparées :
stmt = "SELECT * FROM users WHERE username = %s"
cursor.execute(stmt, ("user1",))
6. Exemples pratiques de Python et MySQL
Combiner Python avec MySQL vous permet de développer un large éventail d’applications pratiques. Dans cette section, nous explorerons quelques cas d’utilisation réels.
6.1 Création d’un système de gestion d’utilisateurs
Un système de gestion d’utilisateurs est un exemple courant d’utilisation conjointe de Python et MySQL. Voici une conception simple :
Étape 1 : créer une table d’utilisateurs
Tout d’abord, créez une table pour stocker les informations des utilisateurs en utilisant l’instruction CREATE TABLE :
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
password VARCHAR(255) NOT NULL
);
Étape 2 : enregistrement de nouveaux utilisateurs
Ensuite, implémentez une fonction pour enregistrer de nouveaux utilisateurs. Voici un exemple en Python utilisant l’instruction INSERT :
import mysql.connector
# Connect to MySQL
conn = mysql.connector.connect(user='root', password='password', host='localhost', database='test_db')
cursor = conn.cursor()
# Insert a new user
insert_query = "INSERT INTO users (username, email, password) VALUES (%s, %s, %s)"
user_data = ("user123", "user123@example.com", "securepassword")
cursor.execute(insert_query, user_data)
# Commit changes
conn.commit()
# Close connection
cursor.close()
conn.close()
Étape 3 : mise en œuvre d’une fonction de connexion
Ajoutez une fonctionnalité de connexion pour authentifier les utilisateurs. Voici un exemple utilisant une instruction SELECT :
# Login authentication
login_query = "SELECT * FROM users WHERE username = %s AND password = %s"
login_data = ("user123", "securepassword")
cursor.execute(login_query, login_data)
user = cursor.fetchone()
if user:
print("Login successful")
else:
print("Login failed")
6.2 Utilisation de MySQL pour l’analyse de données
En utilisant MySQL comme système de stockage de données et en le combinant avec les bibliothèques d’analyse de données de Python, vous pouvez réaliser des analyses puissantes. Voici un exemple avec Pandas :
Étape 1 : récupérer les données depuis MySQL
Récupérez les données stockées dans MySQL et chargez-les dans un DataFrame Pandas :
import mysql.connector
import pandas as pd
# Connect to MySQL
conn = mysql.connector.connect(user='root', password='password', host='localhost', database='test_db')
cursor = conn.cursor()
# Fetch data into a Pandas DataFrame
query = "SELECT * FROM users"
cursor.execute(query)
rows = cursor.fetchall()
df = pd.DataFrame(rows, columns=['id', 'username', 'email', 'password'])
# Preview data
print(df.head())
# Close connection
cursor.close()
conn.close()
Étape 2 : agréger et analyser les données
Utilisez Pandas pour effectuer l’agrégation et l’analyse. Par exemple, vous pouvez compter les utilisateurs par domaine d’email :
# Count users by email domain
df['domain'] = df['email'].apply(lambda x: x.split('@')[1])
domain_count = df['domain'].value_counts()
print(domain_count)
De cette façon, vous pouvez utiliser MySQL comme backend et exploiter Pandas ainsi que d’autres outils Python pour une analyse de données efficace.

7. Résumé et prochaines étapes
Dans ce guide, nous avons couvert les bases du travail avec MySQL en Python—des opérations de base de données fondamentales à la création d’un système de gestion d’utilisateurs simple, en passant par l’analyse de données. Cette compétence est extrêmement puissante pour créer des applications web et des systèmes axés sur les données.
7.1 Apprentissage supplémentaire
Après avoir maîtrisé les bases expliquées dans cet article, envisagez de passer aux étapes suivantes :
- Intégration avec Django ou Flask : Créez des applications web plus avancées avec les frameworks Python.
- Optimisation de la base de données : Apprenez l’indexation MySQL et l’optimisation des requêtes pour améliorer les performances.
- Analyse de Big Data : Traitez les données de MySQL en Python pour les modèles d’apprentissage automatique et les analyses à grande échelle.


