Introduction
MySQL est l'un des systèmes de gestion de bases de données relationnelles les plus populaires, largement utilisé dans le développement web et les solutions d'entreprise. Pour interagir avec MySQL en Python, le pilote PyMySQL est souvent privilégié : une implémentation purement Python du protocole MySQL. Simple d'utilisation, activement maintenu et compatible avec des bibliothèques populaires comme SQLAlchemy et Pandas.
PyMySQL est un pilote pour MySQL qui permet de se connecter à une base de données, d'exécuter des requêtes SQL, de gérer les transactions et de s'intégrer aux frameworks web sans configuration complexe. Contrairement à d'autres pilotes, PyMySQL est entièrement écrit en Python, ce qui le rend multiplateforme et facile à installer.
Qu'est-ce que PyMySQL ?
PyMySQL est une bibliothèque cliente Python qui implémente le protocole MySQL Client/Serveur. Elle fournit une interface pour se connecter à un serveur MySQL et exécuter des requêtes SQL. La bibliothèque suit la spécification Python Database API 2.0 (PEP 249), garantissant ainsi la compatibilité avec d'autres applications Python.
Principales caractéristiques de PyMySQL
- Python pur : Aucune dépendance externe en C/C++ nécessaire
- Compatibilité : Prend en charge MySQL versions 5.5 et ultérieures
- Sécurité : Protection intégrée contre les injections SQL
- Performance : Optimisé pour l'exécution rapide des requêtes
- Simplicité d'utilisation : API intuitive et facile à prendre en main
Installation et connexion à MySQL
Installation
pip install pymysql
Pour des fonctionnalités supplémentaires, il est également recommandé d'installer :
pip install pymysql[rsa] # pour le support de l'authentification RSA
Connexion à la base de données
import pymysql
connection = pymysql.connect(
host='localhost',
user='root',
password='mot_de_passe',
database='test_db',
port=3306,
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
DictCursor permet d'obtenir les résultats sous forme de dictionnaires plutôt que de tuples, ce qui rend la manipulation des données plus pratique.
Paramètres de connexion
| Paramètre | Description | Type | Valeur par défaut |
|---|---|---|---|
host |
Hôte du serveur MySQL | str | 'localhost' |
port |
Port du serveur | int | 3306 |
user |
Nom d'utilisateur | str | None |
password |
Mot de passe | str | None |
database |
Nom de la base de données | str | None |
charset |
Encodage | str | 'utf8mb4' |
autocommit |
Validation automatique | bool | False |
cursorclass |
Classe du curseur | class | Cursor |
Création d'une base de données et de tables
# Création d'une base de données
with connection.cursor() as cursor:
cursor.execute("CREATE DATABASE IF NOT EXISTS test_db")
# Création d'une table
with connection.cursor() as cursor:
cursor.execute("""
CREATE TABLE IF NOT EXISTS utilisateurs (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
age INT,
date_creation TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
""")
connection.commit()
Opérations CRUD avec PyMySQL
Insertion de données
# Insertion d'un seul enregistrement
with connection Aussi dans la bibliothèque
Configuration des applications Kotlin : Bibliothèque Hoplite
Effect-ts pour TypeScript : guide complet avec exemples
Files d'attente de tâches pour Swift : guide complet sur GCD et Operation Queues
Client OAuth pour Node.js : implémentation de l'authentification via Google et GitHub
Travailler avec les dates en JavaScript (Node.js) : les meilleures bibliothèques