====== 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 [[https://drive.google.com/file/d/1zECQ0LD_BJk5wyZXJlOSbHXNjX4bJhYT/view?usp=drive_link|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).