Académique Documents
Professionnel Documents
Culture Documents
Distribuées
Chapitre III
SQL Procédural
M1-Ingénierie des systèmes et technologies du web
Plan de cours
Introduction
Structures de contrôle
Procédures stockées
2 2020-2021
SQL Procédural
1- Introduction
3 2020-2021
SQL Procédural
1- Introduction
- MySQL et Mimer SQL proposent un langage analogue dans le principe mais plus
limité : SQL/PSM (SQL/Persistent Stored Modules)(de la norme SQL2003)
Bloc d’instructions
5 2020-2021
SQL Procédural
6 2020-2021
SQL Procédural
Identificateurs
Permet de nommer un objet utilisé dans un bloc
Exemple :
Commentaires
Mono-lignes : commençant avec le symbole « -- » et finissant à la fin de la ligne
7 2020-2021
SQL Procédural
Variables
Les variables qui sont déclarées (et éventuellement initialisées) par la
directive DECLARE.
- scalaires : recevant une seule valeur d’un type SQL (ex : colonne
d’une table)
Variables scalaires
Syntaxe de déclaration:
8 2020-2021
SQL Procédural
Exemples
9 2020-2021
SQL Procédural
Affectations
10 2020-2021
SQL Procédural
Opérateurs
Les opérateurs SQL (logiques, arithmétiques, de concaténation…) sont
Les règles de priorité sont les mêmes que dans le cas de SQL.
Exemples :
11 2020-2021
SQL Procédural
Variables de session
Il est possible de passer en paramètres d’entrée d’un bloc des variables
externes. Ces variables sont dites de session (user variables).
Exemple :
12 2020-2021
SQL Procédural
Un bloc doit être inclus dans une procédure cataloguée a appelée dans
l’interface de commande
Exemple : Extraction de nombre d’heures de vol du pilote de nom 'Placide Fresnais'.
13 2020-2021
SQL Procédural
3- Structures de contrôle
En tant que langage procédural, MySQL offre la possibilité de programmer :
- Des structures répétitives tant que, répéter et boucle sans fin (WHILE, REPEAT et
LOOP).
Structures conditionnelles
Deux structures pour programmer des actions conditionnées : la structure IF et la
structure CASE.
1- La structure IF
14 2020-2021
SQL Procédural
3- Structures de contrôle
1- La structure IF
Exemple :
15 2020-2021
SQL Procédural
3- Structures de contrôle
1- La structure CASE
Deux façons d’utiliser le CASE :
16 2020-2021
SQL Procédural
3- Structures de contrôle
1- La structure CASE
Exemple :
17 2020-2021
SQL Procédural
3- Structures de contrôle
18 2020-2021
SQL Procédural
3- Structures de contrôle
Exemple :
19 2020-2021
SQL Procédural
3- Structures de contrôle
Exemple :
20 2020-2021
SQL Procédural
3- Structures de contrôle
LEAVE peut être aussi utilisé pour sortir d’un bloc (s’il est étiqueté).
LOOP devient sans fin si vous n’utilisez pas l’instruction LEAVE qui passe
en séquence du END LOOP.
21 2020-2021
SQL Procédural
4- Procédures stockées
4.1. Généralités
Une procédure peut être appelée à l’aide :
22 2020-2021
SQL Procédural
4- Procédures stockées
23 2020-2021
SQL Procédural
4- Procédures stockées
4- Procédures stockées
La syntaxe de création d’une procédure cataloguée est la suivante :
4- Procédures stockées
26 2020-2021
SQL Procédural
4- Procédures stockées
La syntaxe de création d’une fonction cataloguée est la suivante :
CREATE FUNCTION [nomBase.]nomFonction(
[ param typeMySQL
[,param2 typeMySQL ] ] ...)
RETURNS typeMySQL
[ LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL
DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'commentaire'
]
BEGIN
[DECLARE ... ;]
bloc d’instructions SQL et MySQL ... ;
contenant un « RETURN variable ; »
END;
délimiteur
27 2020-2021
SQL Procédural
28 2020-2021
SQL Procédural
29 2020-2021
SQL Procédural
31 2020-2021
SQL Procédural
32 2020-2021
SQL Procédural
33 2020-2021
SQL Procédural