Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
sio2:d4-a06-les_procedures_et_fonctions_stockees [2025/03/23 21:30] – [Exemples] dthevenot | sio2:d4-a06-les_procedures_et_fonctions_stockees [2025/03/24 08:44] (Version actuelle) – [Exemples à tester] dthevenot | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
Tout comme Oracle possède son langage PL/SQL et MS SQL Server son Transact-SQL, | Tout comme Oracle possède son langage PL/SQL et MS SQL Server son Transact-SQL, | ||
+ | ===== ===== | ||
Une procédure stockée, aussi appelée **stored procedure** en anglais, est un concept utilisé en administration de base de données afin d’exécuter un ensemble d’instructions SQL. Une telle procédure est stockée au sein du Système de Gestion de Base de Donneés (SGBD) et peut être appelée à tout moment par son nom afin d’exécuter celle-ci. | Une procédure stockée, aussi appelée **stored procedure** en anglais, est un concept utilisé en administration de base de données afin d’exécuter un ensemble d’instructions SQL. Une telle procédure est stockée au sein du Système de Gestion de Base de Donneés (SGBD) et peut être appelée à tout moment par son nom afin d’exécuter celle-ci. | ||
+ | ===== ===== | ||
Les procédures stockées permettent aussi l' | Les procédures stockées permettent aussi l' | ||
- | ====== | + | ===== ===== |
Pourquoi utiliser les PS(procédures stockées)/ | Pourquoi utiliser les PS(procédures stockées)/ | ||
Ligne 16: | Ligne 18: | ||
===== Syntaxe ===== | ===== Syntaxe ===== | ||
- | Les procédures stockées et les fonctions sont créées avec les commandes **CREATE PROCEDURE** et **CREATE FUNCTION**. Une procédure est appelée avec la commande **CALL**, et ne peut retourner de valeur que via les variables de retour. Les fonctions peuvent retourner une valeur scalaire, et être appelées depuis une commande, tout comme toute autre fonction. Les procédures stockées peuvent appeler une autre routine stockée. Une routine est une procédure stockée ou une fonction. | + | Les procédures stockées et les fonctions sont créées avec les commandes **CREATE PROCEDURE** et **CREATE FUNCTION**. |
+ | |||
+ | Une procédure est appelée avec la commande **CALL**, et ne peut retourner de valeur que via les variables de retour | ||
+ | |||
+ | Les fonctions peuvent retourner une valeur scalaire, et être appelées depuis une commande, tout comme toute autre fonction. Les procédures stockées peuvent appeler une autre routine stockée. Une routine est une procédure stockée ou une fonction. | ||
===== ===== | ===== ===== | ||
+ | ==== PROCEDURE ==== | ||
< | < | ||
DELIMITER // | DELIMITER // | ||
Ligne 32: | Ligne 39: | ||
< | < | ||
===== ===== | ===== ===== | ||
+ | ==== FONCTION==== | ||
+ | < | ||
+ | DELIMITER // | ||
+ | CREATE FUNCTION nomfonction(param1 TYPE, param2 TYPE, ...) | ||
+ | RETURNS TYPE | ||
+ | DETERMINISTIC | ||
+ | BEGIN | ||
+ | -- Déclarations de variables | ||
+ | DECLARE variable1 TYPE; | ||
+ | |||
+ | -- Logique de la fonction | ||
+ | SET variable1 = ...; | ||
+ | |||
+ | -- Retourner une valeur | ||
+ | RETURN variable1; | ||
+ | END // | ||
+ | DELIMITER ; | ||
+ | </ | ||
+ | ===== ===== | ||
+ | Pour appeler la fonction, il est possible d’exécuter la requête SQL suivante: | ||
+ | |||
+ | < | ||
==== Exemples à tester ==== | ==== Exemples à tester ==== | ||
< | < | ||
Ligne 38: | Ligne 67: | ||
RETURN CONCAT(' | RETURN CONCAT(' | ||
|</ | |</ | ||
- | * Que fait cette procédure | + | * Que fait cette fonction |
* Appel : | * Appel : | ||
* Afficher le résultat : | * Afficher le résultat : | ||
Ligne 54: | Ligne 83: | ||
* La tester dans le contexte "Parc immobilier" | * La tester dans le contexte "Parc immobilier" | ||
* Afficher le résultat : | * Afficher le résultat : | ||
- | * Modifier cette procédure pour que le nom de y=table soit géré par un paramètre en entrée | + | * Modifier cette procédure pour que le nom de la table soit géré par un paramètre en entrée |
===== ===== | ===== ===== | ||