Le MySQL
March 20, 2024
(KHARBOUCH Shaimae) FPS March 20, 2024 1 / 35
Introduction
MySQL est un système de gestion de base de données relationnelle (SGBDR)
open-source largement utilisé dans le développement d’applications web et
d’autres applications nécessitant un stockage et une manipulation efficace des
données. Il utilise le langage SQL (Structured Query Language) pour gérer et
interroger les données stockées dans ses bases de données.
(KHARBOUCH Shaimae) FPS March 20, 2024 2 / 35
Introduction
Création : MySQL a été développé par une entreprise suédoise appelée
MySQL AB, fondée par Michael ”Monty” Widenius, David Axmark, et Allan
Larsson. Le développement initial a commencé dans les années 1990.
Version initiale : La première version de MySQL, la 3.23, a été publiée en
1999.
Raisons du développement : MySQL a été initialement développé pour
répondre aux besoins croissants de bases de données fiables, performantes et
open-source dans les applications web émergentes à l’époque.
Popularité et utilisation dans l’industrie des bases de données : MySQL est
largement utilisé dans de nombreux secteurs pour diverses applications :
– Applications Web : De petites applications personnelles aux grands sites
d’e-commerce et de médias sociaux, MySQL est préféré pour sa fiabilité, sa
performance et son intégration facile avec des langages comme PHP, Python
et Java.
(KHARBOUCH Shaimae) FPS March 20, 2024 3 / 35
Introduction
– Applications d’entreprise : MySQL est utilisé pour gérer les données internes,
générer des rapports et analyser les données dans le cadre du développement
d’applications d’entreprise.
– Logiciels open-source : En raison de sa nature open-source et de sa licence
flexible, MySQL est intégré dans de nombreux logiciels open-source et projets
communautaires.
– Analyse de données : Bien que souvent associé à des applications
transactionnelles, MySQL est également utilisé dans l’analyse de données, où
les données sont extraites, transformées et chargées dans des entrepôts de
données pour des analyses ultérieures.
La polyvalence, la robustesse et la popularité de MySQL en ont fait un choix
de prédilection pour de nombreux développeurs et entreprises à travers le
monde.
(KHARBOUCH Shaimae) FPS March 20, 2024 4 / 35
MySql Exemple
(KHARBOUCH Shaimae) FPS March 20, 2024 5 / 35
Les variables MySQL
En MySQL, il n’y a pas de variables de programmation comme dans certains
langages de programmation tels que PHP ou Python. Cependant, MySQL prend
en charge les variables de session , les variables utilisateur et Variables locales.
(KHARBOUCH Shaimae) FPS March 20, 2024 6 / 35
Les variables MySQL
Variables de session : Les variables de session sont spécifiques à la session en
cours pour une connexion MySQL donnée. Elles peuvent être définies et
utilisées dans le cadre d’une session MySQL.
(KHARBOUCH Shaimae) FPS March 20, 2024 7 / 35
Les variables MySQL
Variables utilisateur : Les variables utilisateur sont similaires aux variables de
session, mais elles persistent pour la durée de vie de la connexion MySQL.
Elles peuvent être définies et utilisées comme les variables de session, mais
elles restent disponibles jusqu’à ce que la connexion soit terminée.
(KHARBOUCH Shaimae) FPS March 20, 2024 8 / 35
Les variables MySQL
Variables locales : Les variables locales sont déclarées à l’intérieur d’une
procédure stockée ou d’une fonction et ne sont accessibles que dans leur
portée locale.
(KHARBOUCH Shaimae) FPS March 20, 2024 9 / 35
Les structures de contrôle
En MySQL, les structures de contrôle telles que les boucles et les instructions
conditionnelles peuvent être utilisées dans le cadre des procédures stockées, des
fonctions et des déclencheurs.
(KHARBOUCH Shaimae) FPS March 20, 2024 10 / 35
Les structures de contrôle
Instructions conditionnelles :
IF ... THEN ... ELSE;
Permet d’exécuter des instructions en fonction d’une condition spécifiée.
CASE;
Permet d’effectuer des évaluations conditionnelles plus complexes en fonction
de différentes valeurs.
(KHARBOUCH Shaimae) FPS March 20, 2024 11 / 35
Les structures de contrôle
Boucles :
WHILE;
Exécute un bloc d’instructions tant qu’une condition spécifiée est vraie.
REPEAT ... UNTIL;
Exécute un bloc d’instructions au moins une fois, puis répète l’exécution
jusqu’à ce qu’une condition spécifiée soit vraie.
(KHARBOUCH Shaimae) FPS March 20, 2024 12 / 35
Les structures de contrôle
Boucles :
LOOP;
Crée une boucle infinie qui doit être interrompue par une instruction LEAVE.
LEAVE;
Permet de sortir d’une boucle LOOP.
(KHARBOUCH Shaimae) FPS March 20, 2024 13 / 35
Les curseurs
En MySQL, les curseurs sont utilisés pour parcourir les résultats d’une requête
SQL, généralement à l’intérieur des procédures stockées ou des fonctions.
(KHARBOUCH Shaimae) FPS March 20, 2024 14 / 35
Les curseurs
Déclaration d’un curseur :
Ouverture d’un curseur :
Parcours des résultats avec FETCH :
Fermeture d’un curseur :
(KHARBOUCH Shaimae) FPS March 20, 2024 15 / 35
Les curseurs
Voici un exemple complet d’utilisation d’un curseur en MySQL :
(KHARBOUCH Shaimae) FPS March 20, 2024 16 / 35
Les attributs d un curseur
En MySQL, les curseurs sont des objets permettant de parcourir les résultats
d’une requête SQL. Lorsque vous déclarez un curseur, vous pouvez spécifier
certains attributs pour contrôler son comportement.
(KHARBOUCH Shaimae) FPS March 20, 2024 17 / 35
Les attributs d un curseur
Sensibilité du curseur (SENSITIVITY) :
Vous pouvez spécifier la sensibilité du curseur en le déclarant comme SENSITIVE
ou INSENSITIVE.
Un curseur sensible reflète les modifications apportées à la base de données
pendant que le curseur est ouvert, tandis qu’un curseur insensible ne le fait pas.
Portée du curseur (SCOPE) :
La portée du curseur peut être GLOBAL ou LOCAL.
Un curseur à portée globale reste ouvert même après la fin de la transaction, tandis
qu’un curseur à portée locale se ferme automatiquement à la fin de la transaction.
Type de curseur (TYPE) :
Le type de curseur peut être ’FORWARD ONLY’, ’SCROLL’, ou ’DYNAMIC’.
Un curseur ’FORWARD ONLY’ ne peut parcourir les enregistrements qu’une seule
fois dans une direction, tandis qu’un curseur ’SCROLL’ permet le défilement dans
les deux sens.
Un curseur ’DYNAMIC’ peut refléter les modifications apportées à la base de
données pendant que le curseur est ouvert.
(KHARBOUCH Shaimae) FPS March 20, 2024 18 / 35
Les attributs d un curseur
Déclaration du curseur avec attributs :
Lorsque vous déclarez un curseur, vous pouvez spécifier ses attributs en utilisant la
syntaxe suivante :
Voici un exemple de déclaration de curseur avec des attributs :
En spécifiant ces attributs lors de la déclaration du curseur, vous pouvez contrôler
son comportement et son fonctionnement selon vos besoins spécifiques.
(KHARBOUCH Shaimae) FPS March 20, 2024 19 / 35
les procédures
Une procédure stockée est une routine nommée qui effectue une ou plusieurs
opérations SQL. Elle est stockée dans la base de données MySQL et peut être
appelée et exécutée à partir de diverses applications ou outils de gestion de bases
de données.
Les procédures stockées sont utiles pour encapsuler la logique métier dans la base
de données elle-même, ce qui peut simplifier le code applicatif, améliorer les
performances et garantir la cohérence des opérations de base de données.
(KHARBOUCH Shaimae) FPS March 20, 2024 20 / 35
les procédures
Création d’une procédure stockée :
Appel et exécution de la procédure stockée :
(KHARBOUCH Shaimae) FPS March 20, 2024 21 / 35
Les fonctions
En MySQL, les fonctions sont des éléments qui acceptent des paramètres,
effectuent des opérations sur ces paramètres et renvoient une valeur.
Les fonctions en MySQL peuvent être très utiles pour encapsuler la logique métier
réutilisable, effectuer des calculs complexes, valider des données, etc. Elles
peuvent être utilisées dans des requêtes SQL de la même manière que les colonnes
de table ou les expressions SQL.
(KHARBOUCH Shaimae) FPS March 20, 2024 22 / 35
Les fonctions
Création d’une fonction :
Exemple:
(KHARBOUCH Shaimae) FPS March 20, 2024 23 / 35
Le traitement des erreurs
En MySQL, vous pouvez gérer les erreurs à l’aide de déclarations CONDITION,
qui vous permettent de capturer et de gérer les erreurs qui se produisent lors de
l’exécution de requêtes SQL dans des procédures stockées, des fonctions et des
déclencheurs.
(KHARBOUCH Shaimae) FPS March 20, 2024 24 / 35
Le traitement des erreurs
Utilisation de la déclaration CONDITION :
Gestion des erreurs avec les gestionnaires :
Propagation des erreurs :
(KHARBOUCH Shaimae) FPS March 20, 2024 25 / 35
Le traitement des erreurs
Exemple complet de gestion des erreurs :
(KHARBOUCH Shaimae) FPS March 20, 2024 26 / 35
Les triggers
Les déclencheurs (triggers) en MySQL sont des objets de base de données utilisés
pour définir des actions automatisées qui sont exécutées en réponse à certaines
opérations sur une table, telles que l’insertion, la mise à jour ou la suppression de
données. Ils permettent d’implémenter la logique métier au niveau de la base de
données elle-même, ce qui peut simplifier le développement et assurer la cohérence
des données.
(KHARBOUCH Shaimae) FPS March 20, 2024 27 / 35
Les triggers
Syntaxe de base :
Composants d’un déclencheur :
Nom du déclencheur (nom declencheur) : Identifiant unique du déclencheur.
Moment du déclenchement (BEFORE ou AFTER) : Spécifie si le déclencheur
doit être exécuté avant ou après l’événement déclenchant.
(KHARBOUCH Shaimae) FPS March 20, 2024 28 / 35
Les triggers
Événement déclenchant (INSERT, UPDATE ou DELETE) : L’opération sur
la table qui déclenche le déclencheur.
Nom de la table (nom table) : Table sur laquelle le déclencheur est attaché.
FOR EACH ROW : Indique que le déclencheur doit être exécuté pour chaque
ligne affectée par l’opération.
Déclaration de variables : Définition des variables locales à utiliser dans le
corps du déclencheur.
Instructions du déclencheur : Logique métier à exécuter en réponse à
l’événement déclenchant.
(KHARBOUCH Shaimae) FPS March 20, 2024 29 / 35
Les triggers
Types de déclencheurs :
Déclencheurs BEFORE : Exécutés avant que l’événement déclenchant ne soit
appliqué à la table. Utile pour valider ou modifier les données avant leur
modification.
Déclencheurs AFTER : Exécutés après que l’événement déclenchant ait été
appliqué à la table. Utile pour les actions qui doivent être déclenchées après
que les données ont été modifiées.
(KHARBOUCH Shaimae) FPS March 20, 2024 30 / 35
Les triggers
Utilisation des déclencheurs :
Audit des modifications de données : Enregistrement des changements
apportés aux données dans une table d’audit.
Validation des données : Vérification des contraintes métier avant l’insertion,
la mise à jour ou la suppression de données.
Gestion des dépendances : Mise à jour d’autres tables en réponse à des
modifications dans une table principale.
Génération de valeurs par défaut : Attribution de valeurs par défaut à
certaines colonnes lors de l’insertion de nouvelles lignes.
(KHARBOUCH Shaimae) FPS March 20, 2024 31 / 35
Les triggers
Avantages des déclencheurs :
Encapsulation de la logique métier : La logique métier est encapsulée dans la
base de données, ce qui permet d’améliorer la cohérence et la sécurité des
données.
Réduction de la complexité du code : Certaines opérations peuvent être
effectuées plus efficacement au niveau de la base de données.
Simplicité de maintenance : Les déclencheurs sont stockés dans la base de
données et peuvent être facilement modifiés ou supprimés.
(KHARBOUCH Shaimae) FPS March 20, 2024 32 / 35
Les triggers
Exemple Complet :
Création des tables commandes et historiquec ommandes :
(KHARBOUCH Shaimae) FPS March 20, 2024 33 / 35
Les triggers
Création du déclencheur pour enregistrer les nouvelles commandes :
(KHARBOUCH Shaimae) FPS March 20, 2024 34 / 35
Conclusion
En bref, MySQL est un système de gestion de base de données essentiel pour
stocker, organiser et manipuler les données de manière efficace. Avec ses
fonctionnalités avancées telles que les procédures stockées, les fonctions et les
déclencheurs, il permet d’automatiser des tâches et d’améliorer les performances.
Sa simplicité d’utilisation et sa large adoption en font un choix incontournable
pour de nombreux projets.
(KHARBOUCH Shaimae) FPS March 20, 2024 35 / 35