Académique Documents
Professionnel Documents
Culture Documents
Introduction
Dans ce Tutoriel, vous apprendrez comment installer MySQL, établir une connexion Jupyter
notebook (python)/MySQL et interagir avec les deux systèmes en utilisant python et le
langage SQL. Commençons donc par l’acronyme SQL et ce qu’il représente. Au niveau de
base, SQL est une méthode de communication entre vous et une base de données. C’est le
langage standard pour de nombreux systèmes de gestion de bases de données
relationnelles. SQL est souvent utilisé pour interroger, insérer, mettre à jour et modifier des
données. Beaucoup de commandes utilisées dans SQL sont assez faciles à interpréter par
rapport à de nombreux autres langages informatiques. Cela rend SQL, en tant que langage,
vraiment facile à comprendre et à apprendre, mais aussi très puissant. SQL est utilisé
généralement pour:
Lire et récupérer des données (les données sont souvent stockées dans une base de
données).
Ecrire des données dans une base de données (écrire des données dans une table et
insérer de nouvelles données).
Mettre à jour des données.
MySQL est un système de gestion de bases de données relationnelles (SGBDR). Il fait
partie des logiciels de gestion de base de données les plus utilisés au monde, autant par le
grand public que par des professionnels. Le logiciel reste cependant entièrement gratuit et
libre. Il ne faut donc pas confondre une base de données qui est un conteneur et le SGBDR
qui est un logiciel de gestion de bases de données.
Ce tutoriel sera une base solide pour les gens qui souhaitent utiliser Python pour écrire des
instructions SQL et ainsi interagir avec les bases de données gérées par MySQL.
1. Prérequis
1.1. Installer MySQL
L’installation de MySQL sur votre machine est très simple. Il suffit de télécharger un
package MSI et valider quelques options. Dans ce tutoriel, l'installation est faite sous
Windows.
1. Téléchargez le package MSI à partir d’ici. Les deux options de téléchargement sont une
version web-community et une version complète. La version web-community ne
téléchargera que le serveur, mais vous pouvez après télécharger d’autres applications. La
version complète téléchargera le serveur et toutes les applications supplémentaires
recommandées (la version utilisée dans ce tutoriel).
2. Exécutez le package MSI que vous avez téléchargé à partir de son emplacement sur votre
ordinateur et acceptez le contrat de licence, puis cliquez sur suivant.
3. Ensuite, il faut déterminer le type de configuration que vous souhaitez utiliser pour
l’installation. Si vous voulez créer votre propre base de données à partir de zéro, il vaut
mieux utiliser la configurationDeveloper Default.
4. Installez le serveur SQL, le Workbench et les applications supplémentaires que vous avez
sélectionnés. Par la suite, vaut serez amené à saisir un mot de passe qui sera utile après
pour accéder au serveur.
5. Une fois l'installation terminé, ouvrez votre Workbench et accédez a votre connexion
MySQL. Assurez-vous que votre serveur SQL est activé.
Syntaxe :
python
!pip install ipython-sql
!pip install mysql-connector-python
Maintenant, nous allons utiliser la bibliothèque sqlalchemy pour créer une connexion à la
base de données MySQL :
Syntaxe :
python
import sqlalchemy
sqlalchemy.create_engine('mysql+mysqlconnector://root:mdp@localhost :3306')
Ici, root représente le nom d’utilisateur, mdp c’est le mot de passe que vous avez saisis
lors de l’installation et avec lequel vous avez accéder au serveur MySQL
et localhost:3306 représente l’hôte local connecté au port 3306 (vous pouvez utiliser
l’adresse IP local 127.0.0.1 à la place de localhost).
Nous pouvons maintenant charger le module SQL précédemment installé :
Syntaxe :
python
%load_ext sql
Finalement, vérifiez votre connexion avec la commande suivante :
python
%sql mysql + mysqlconnector://root:mdp@localhost:3306
Remarque : Si vous utilisez un Jupyter notebook non local comme l’environnement Colab
de Google, la dernière commande produira une erreur :
Vous pouvez aussi vérifier si votre base de données existe au niveau de votre Workbench
(suffit de l’actualiser) :
Pour pouvoir créer des tables et les manipuler en utilisant différent SQL syntaxe, faut
d’abord se connecter à une base de données (pour accéder à la base de
données mydata en rajoute /mydata) :
Syntaxe :
python
sqlalchemy.create_engine('mysql+mysqlconnector://root:mdp@localhost:3306/
mydata')
%sql mysql + mysqlconnector://root:mdp@localhost:3306/mydata
Si vous avez bien suivi toutes les instructions, en sortie vous deverez
avoir connected : root@mydata>.
2.3.1. SELECT
Pour sélectionner une table de données depuis MySQL et l’afficher, nous allons utilisez
l’instruction << SELECT >> :
Syntaxe :
python
%% sql
SELECT * FROM Livres
Résultat d’exécution :
Vous remarquez que dans les noms des livres, le petit prince est répété deux fois. Si vous
voulez afficher les livres existants sans répétions, vous devez précédez le nom de la
colonne (ici nom) par l’instruction DISTINCT :
Syntaxe :
python
%%sql
SELECT DISTINCT nom FROM Livres
Résultat d’exécution:
Supposant que vous voulez afficher les deux colonnes nom et prix depuis la table livres
comme celle d’avant, mais cette fois vous voulez affichez les noms des livres sans
répétions. Utilisez l’instruction suivante et vérifiez par vous-même le résultat.
Syntaxe :
python
%%sql
SELECT DISTINCT nom, prix FROM Livres
2.3.2. WHERE
L’instruction << WHERE >> est utilisée pour filtrer la sélection à partir d’une table de
données. Elle est généralement suivie par une ou plusieurs conditions. À partir de la
table Livres, nous désirons filtrer les noms des livres et afficher que les livres ayant un prix
inférieur à 100 :
Syntaxe :
python
%%sql
SELECT DISTINCT nom FROM livres WHERE prix<100.0
Résultat d’exécution:
Pour éviter la répétions, vous pouvez utiliser l’instruction DISTINCT vu précédemment.
2.3.2. ORDER BY
<< ORDER BY >> est une instruction qui permet d’ordonner les données sélectionnées à
partir d’une table MySQL selon la façon souhaitée. Dans notre exemple, pour sélectionner
le nom et le prix des livres et les afficher du prix le plus bas au plus grand, nous utiliserons
l’instruction suivante :
Syntaxe :
python
%%sql
SELECT DISTINCT nom, prix FROM livres ORDER BY prix
Résultat d’exécution:
Pour changer l’ordre (ordre décroissant), vous devez rajouter l’instruction DESC. Si vous
voulez afficher par exemple, toute la table de données Livres mais cette fois avec un ordre
de stock décroissant, utilisez l’instruction suivante :
Syntaxe :
python
%%sql
SELECT * FROM livres ORDER BY stock DESC
Résultat d’exécution:
2.3.4. UPDATE
Vous pouvez mettre à jour les informations existantes dans une table de données MySQL à
l’aide de l’instruction << UPDATE >. Dans notre table de données Livres, nous souhaitons
changer le prix de quelques livres :
Syntaxe :
python
%%sql
UPDATE Livres SET prix=120.0 WHERE nom="Les miserables" OR nom="Le seigneur
des anneaux"
Nous avons changé le prix de deux livres à 120. Vous pouvez affichez la table de données
et voir le changement.
2.3.5. DELETE
Vous pouvez supprimer des données d’une table MySQL à l’aide de
l’instruction << DELETE >>. Supposant que dans la table de données Livres vous
souhaitez supprimer un livre (exemple: Vingt mille lieux sous la mer, car il y’a un seul
exemplaire et vous l’avez vendu) :
Syntaxe :
python
%%sql
DELETE FROM Livres WHERE nom='Vingt mille lieues sous les mers'
Vous pouvez toujours afficher la table de données et voir le changement effectué.
Et vous pouvez maintenant accéder aux données. Par exemple, si vous voulez enregistrer
les données dans une liste, l’instruction est la suivante :
Syntaxe :
python
Commande_list = [ commande[0][0] , commande[1][0] , commande[2][0] , commande[3]
[0] ]
Syntaxe :
python
result = %sql SELECT * FROM livres
df = result.DataFrame()
df.head()
Résultat d’exécution:
3. Exercices
Pour les exercices, on va se baser sur la table de données précédente.
3.1. Exercice 1
Une nouvelle commande de livres vient d’arriver, elle contient :
3.2. Exercice 2
Question 1 : Supprimer les répétitions de la table de données Livres.
Question 2 : Calculer le nombre total (stock total) de livres qui existe dans la bibliothèque
et stocker le résultat dans une variable python. (Utiliser SUM() qui retourne la somme totale
d’une colonne numérique)
4. Solution des exercices:
4.1. Exercice 1
Syntaxe :
python
%%sql
INSERT INTO Livres VALUES ( 8 , "Le comte de Monte-Cristo" , 550 , 200 , 200 )
;
UPDATE Livres SET stock=126 WHERE nom="Les trois mousquetaires"
%%sql
SELECT * FROM Livres
Résultat d’exécution:
4.2. Exercice 2
Solution :
Question 1 :
python
%%sql
DELETE FROM Livres WHERE Id=7
Question 2 :
Stock total :
python
%%sql
SELECT SUM(stock) FROM Livres
Résultat d’exécution:
python
stock_total = %sql SELECT SUM(stock) FROM Livres
stock_total = stock_total[0][0]
Conclusion
Nous somme arrivé à la fin de ce tutoriel. J’espère que vous avez réussi à obtenir quelque
chose d’utile et que vous avez apprécié la simplicité d’effectuer des instructions SQL dans
ce format.
Cependant, il y a encore trop des chose à apprendre, mais vous êtes sur la bonne voie.