GÉRER LES DONNÉES
Filière Développement Digital Option Web Full Stack
SOMMAIRE
1. Exploiter les fonctionnalités avancées d’un SGBD relationnel
Maitriser le langage de programmation procédurale sous MySQL
Optimiser une base de données MySQL
Protéger la base de données MySQL
2. Exploiter les fonctionnalités des bases de données NoSQL MongoDB
Découvrir les bases de données NoSQL
Mettre en place une base de données MongoDB
Modéliser les documents
Manipuler les données avec mongoDB
Effectuer des requêtes depuis des programmes Python
Sécuriser une base de données MongoDB
Maitriser les instructions de bases
Les variables
Il existe deux grands types de variables utilisateur :
1. Variables locales (ou scalaires) :
Utilisées seulement dans un bloc (procédure stockée, fonction, trigger, etc.).
2. Variables de session (ou variables utilisateur @ ) :
Valables pendant toute la durée de la connexion (session) de l’utilisateur.
Maitriser les instructions de bases
Les variables scalaires
Les variables scalaires sont des variables simples (numériques, chaînes, date, etc.)
qui ne contiennent qu’une seule valeur à la fois (contrairement à un curseur ou à
une table temporaire).
On peut les déclarer et les utiliser à l’intérieur d’un bloc procédural (procédure
stockée, fonction, déclencheur).
Exemple :
DECLARE nom_variable TYPE [DEFAULT valeur];
Lors des conflits potentiels de noms (variables ou colonnes) dans des instructions SQL
(principalement INSERT, UPDATE, DELETE et SELECT),
le nom de la variable est prioritairement interprété au détriment de la colonne de la
table (de même nom)
Exemple :
DECLARE v_dateNaissance DATE;
DECLARE v_trouve BOOLEAN DEFAULT TRUE;
DECLARE v_Dans2jours DATE DEFAULT ADDDATE(SYSDATE(),2);
DECLARE i, j, k INT;
Variables de session (user-defined variables)
- On les déclare sans mot-clé ( DECLARE ), simplement avec @nom_variable.
- Elles existent tant que la session est ouverte (connexion MySQL).
- Elles peuvent être utilisées dans des requêtes, procédures, etc.
Exemple :
SET @nom := 'Variable utilisateur';
SELECT @nom; -- ( Retourne 'Variable utilisateur’ )
L’opérateur :=
:= est l’opérateur d’affectation en MySQL.
Il sert à donner une valeur à une variable ( locale ou de session ).
Il est utilisé pour éviter la confusion avec = (qui sert principalement à la
comparaison en SQL).
Exemple avec une variable de session
SET @x := 10; -- affecte 10 à @x
SELECT @x; -- retourne 10
SELECT @x := 20; -- affecte 20 à @x et retourne 20
SELECT @x = 20; -- comparaison : retourne NULL
Différence entre = et :=
= comparaison ( sauf dans un SET, où MySQL accepte aussi = comme affectation pour
compatibilité), utilise = pour comparer des valeurs (WHERE, JOIN, etc.).
:= affectation explicite (toujours clair et recommandé), utilise := pour affecter une
valeur à une variable (@var ou variable locale).
Dans SET, les deux fonctionnent (SET @x = 10; ou SET @x := 10;), mais := reste plus
propre.
Maitriser les structures de contrôle
En MySQL ( dans les procédures stockées, fonctions, triggers ou événements ), on
peut utiliser des structures de contrôle pour écrire du code procédural, un peu
comme dans les langages de programmation classiques.
Les structures conditionnelles :
IF condition THEN IF age >= 18 THEN
-- instructions
SET statut = 'Adulte’;
ELSEIF autre_condition THEN
ELSE
-- instructions
ELSE SET statut = 'Mineur’;
-- instructions
END IF;
END IF;
Case avec sélecteur
On compare une valeur (sélecteur) à plusieurs options.
CASE expression SELECT nom,
CASE statut
WHEN valeur1 THEN résultat1
WHEN 'A' THEN 'Actif’
WHEN valeur2 THEN résultat2 WHEN 'I' THEN 'Inactif’
ELSE 'Inconnu’
ELSE résultat_par_défaut
END AS statut_textuel
END FROM clients;
CASE sans sélecteur (conditions logiques)
On ne compare pas une seule expression, mais on écrit directement des conditions.
CASE SELECT nom,
CASE
WHEN age < 18 THEN 'Mineur’
WHEN age < 18 THEN 'Mineur’
WHEN age BETWEEN 18 AND 65 THEN 'Adulte’ WHEN age BETWEEN 18 AND 65 THEN 'Adulte’
ELSE 'Senior’
ELSE 'Senior’
END AS categorie_age
END FROM clients;
Les boucles : LOOP
L'instruction LOOP vous permet d'exécuter une ou plusieurs instructions à plusieurs
reprises.
[labele_debut : ] LOOP
statement_list
END LOOP [label_fin]
Les boucles : LOOP
L’instruction LEAVE sort immédiatement
de la boucle. Cela fonctionne comme
l'instruction break dans d'autres langages
de programmation comme PHP, C/C++ et
Java.
L’instruction ITERATE est utilisée pour
ignorer l'itération de la boucle en cours
et démarrer une nouvelle itération.
L'ITERATE est similaire à l'instruction
continue en PHP, C/C++ et Java.
Les boucles : WHILE
La boucle WHILE est une instruction de boucle qui exécute un bloc de code de manière répétée tant qu'une
condition est vraie.
Pour l’utilisation de la boucle WHILE, on utilise la syntaxe :
[labele_debut : ] WHILE condition DO
liste des instructions
END WHILE [labele_fin]
Les boucles : REPEAT
La liste d'instructions dans une instruction REPEAT est répétée jusqu’à (UNTIL) ce que l'expression condition soit
vraie.
Ainsi, un REPEAT entre toujours dans la boucle au moins une fois.
liste_instructions se compose d'une ou plusieurs instructions, chacune terminée par un délimiteur d'instruction
point-virgule (;).