D4-A07 : les procédures et fonctions stockées en SQL
Contexte : Gestion d’un parc immobilier
La base bdgestimmo contient les tables suivantes (simplifiées) : script de création bdgestimmo.sql
CREATE TABLE logement (
id INT AUTO_INCREMENT PRIMARY KEY,
ville VARCHAR(50),
surface INT,
etat ENUM('OCCUPE', 'VACANT')
);
CREATE TABLE locataire (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(50),
prenom VARCHAR(50),
date_entree DATE,
logement_id INT,
FOREIGN KEY (logement_id) REFERENCES logement(id)
);
Exercice 1 : Nombre de logements vacants
Objectif : créer une procédure stockée qui retourne le nombre de logements vacants.
Exemple d'appel :
CALL nb_logements_vacants(@result); SELECT @result;
Exercice 2 : Recherche de logements par ville
Objectif : créer une procédure avec un paramètre IN qui affiche les logements d’une ville donnée.
Exemple d'appel :
CALL logements_par_ville('Paris');
Exercice 3 : Calcul du loyer TTC
Objectif : créer une fonction qui calcule le loyer TTC à partir d’un montant HT.
Exemple d'appel :
SELECT loyer_ttc(850);
Exercice 4 : Archiver les anciens locataires
Objectif : déplacer les locataires sortis depuis plus de 2 ans dans une table locataire_archive (procédure stockée).
Exercice 5 (avancé) : Boucler avec un curseur
Objectif : lister tous les noms et prénoms des locataires avec un curseur. (procédure stockée).