Table des matières

D4-A05 : les procédures et fonctions stockées en SQL

Contexte : Gestion d’un parc immobilier

La base contient les tables suivantes (simplifiées) :

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 sp_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 sp_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 fn_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.

Exercice 5 (avancé) : Boucler avec un curseur

Objectif : lister tous les noms et prénoms des locataires avec un curseur.