Executive Master Statistique et Big Data
ACCÉDER À UNE BASES DE DONNÉES
SQL EN PYTHON
Maude Manouvrier
Moodle Exec Master Statistique et Big Data_P5_20-21_Accueil
Module 2 - Bases de données sous SQL - M. MANOUVRIER
Accéder à une base de données en Python
Nécessité d’utiliser une interface standard pour les modules d’accès à une base
de données ou Database Application Programming Interface (DB-API) de Python
©Maude Manouvrier - Univ. Paris Dauphine – figure reprise de [Link] 2
Méthodes de DB-API Python
SGBD
©Maude Manouvrier - Univ. Paris Dauphine – figures reprises de [Link] 3
Méthodes de DB-API Python
▪ [Link](...): pour se connecter au SGBD et à la base de données –
la méthode renvoie un descripteur de connexion ou génère une exception
▪ [Link](): pour créer un curseur pour exécuter une requête SQL
et le cas échéant afficher le résultat
▪ [Link](): pour valider l’exécution d’une transaction (INSERT,
UPDATE, DELETE)
▪ [Link](): pour annuler une transaction (en cas d’exception
par exemple)
▪ [Link](): pour fermer la connexion
▪ [Link](statement): pour exécuter une requête
▪ [Link]() [Link]():pour récupérer les nuplets
résultats d’une requête SELECT
©Maude Manouvrier - Univ. Paris Dauphine – figures reprises de [Link] 4
DB-API Python / SGBD
▪ sqlite3 pour SQLite,
▪ psycopg2 pour PostgreSQL
▪ mysql-python pour MySQL …
Pour installer le module :
>>> pip install psycopg2
©Maude Manouvrier - Univ. Paris Dauphine – figure reprise de [Link] 5
Exemple de programme Python utilisant PostgreSQL
fetchall()renvoie une liste de tuples :
©Maude Manouvrier - Univ. Paris Dauphine – Adapté de [Link] 6
Exemple de programme Python utilisant PostgreSQL
Une fonction pour récupérer les informations de connexion dans un fichier :
Contenu du fichier [Link] :
©Maude Manouvrier - Univ. Paris Dauphine – Adapté [Link] 7
Exemple de programme Python utilisant PostgreSQL
Programme utilisant la fonction config() :
©Maude Manouvrier - Univ. Paris Dauphine – Adapté [Link] 8
Exemple de programme Python utilisant PostgreSQL
Exemple d’utilisation de fetchone() qui renvoie un tuple :
©Maude Manouvrier - Univ. Paris Dauphine – Adapté [Link] 9
Attention aux requêtes de mise à jour
Sans utiliser commit() :
Mise à jour OK en mémoire :
Mais aucune modification sur le disque :
©Maude Manouvrier - Univ. Paris Dauphine – Adapté [Link] 10
Attention aux requêtes de mise à jour
En utilisant commit() :
Mise à jour OK en mémoire :
Répercussion de la mise à jour sur le disque :
©Maude Manouvrier - Univ. Paris Dauphine – Adapté [Link] 11
En utilisant SQLAlchemy
SQLAlchemy = un outils de
correspondance objet-relationnel ou
ORM (Object Relational Mapper)
Cf. [Link]
Un ORM :
▪ permet à un programme de
dialoguer avec un SGBD sans
émettre d’ordres SQL
▪ masque au programme les
particularités de chaque SGBD
Pour installer le module :
>>> pip install SQLAlchemy
©Maude Manouvrier - Univ. Paris Dauphine – figure reprise de [Link] 12
En utilisant SQLAlchemy
Possibilité d’utiliser SQLAlchemy pour faire du SQL standard :
©Maude Manouvrier - Univ. Paris Dauphine 13
En utilisant pandas
Possibilité d’utiliser psycopg2 et pandas pour faire du SQL standard :
©Maude Manouvrier - Univ. Paris Dauphine 14
En utilisant pandas
Possibilité d’utiliser SQLAlchemy et pandas pour faire du SQL standard :
©Maude Manouvrier - Univ. Paris Dauphine 15
En utilisant pandas
©Maude Manouvrier - Univ. Paris Dauphine 16
Liens
▪ Pour le DB-API MySQL :
• [Link]
connecter-a-une-base-de-donnees-198984543081596
• [Link]
• [Link]
▪ Pour le DB-API PostgresSQL :
• [Link]
• [Link]
postgresql-database-like-a-data-scientist-b5a9c5a0ea43
▪ Pour le DB-API SQLite :
• [Link]
©Maude Manouvrier - Univ. Paris Dauphine – figures reprises de [Link] 17
Liens
▪ Pour SQLAlchemy:
• [Link]
• [Link]
• [Link]
• [Link]
de-l-orm-sqlalchemy
▪ Pour Pandas :
• [Link]
html
• [Link]
• [Link]
• [Link]
©Maude Manouvrier - Univ. Paris Dauphine – figures reprises de [Link] 18