Fonctions SQL et PL/SQL -- Base Location

On boucle

Aller à la source

Vous trouverez toute la documentation nécessaire sur le site de Postgresql. N'hésitez pas à la consulter. Le serveur Postgres de slinux2 est en version 8.1.

Créez une base de données locationVotreNom. Connectez-vous à votre nouvelle base. Récupérez les fichiers suivants location.sql et insert-location3.sql. Créez les tables puis peuplez votre base.

Écrivez une fonction qui retourne le chiffre d'affaires d'une catégorie donnée (par son identifiant). Pour le chiffre d'affaires, on ne regarde que les contrats terminés.

Écrivez une fonction qui retourne une chaîne de caractères inexistant, faible, moyen ou bon à partir de l'identifiant d'une catégorie de voitures suivant que son chiffre d'affaires est :

  • nul : la réponse sera inexistant;
  • inférieur à 500 euros : faible;
  • inférieur à 1000 euros : moyen;
  • supérieur à 1000 euros : bon.

Écrivez ue requête qui affiche l'identifiant de chaque catégorie, son libellé, son chiffre d'affaires et le qualificatif associé.

Écrivez une fonction qui retourne le nombre de jours sans location ni réservation entre deux dates données en paramètre.

Écrivez une fonction qui retourne le nombre de jours location.voiture entre deux dates données. On entend par là le nombre de jours de location multiplié par le nombre de voitures louées ce jour-là.

Par exemple, si vous donnez un intervalle de deux jours, que le premier jour 3 voitures sont louées et que le second 4 voitures sont loués, la fonction retournera 7.

Écrivez une fonction qui retourne le prix d'une location donnée par son identifiant id_contrat.

Écrivez une fonction qui met à jour la colonne prix_location dans la table contrat.

On modifie la base location. Ajoutez une colonne ristourne à la table client. Par défaut, les clients n'ont pas de ristourne (i.e. une ristourne égale à 0.0).

Écrivez une fonction qui mettra à jour les ristournes. Les trois meilleurs clients (au sens du chiffre d'affaires qu'ils ont engendré), auront une réduction de 5%, et même 8% s'ils sont lensois. Les deux suivants auront 3% de réduction, et même 5% s'ils sont lensois.