====== 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).