Cours BUT Info

TD 3.02 — LaRaquette, la suite

La suite du club LaRaquette : requêtes évoluées (GROUP BY, EXISTS, classements avec égalités), fonctions de dates, et mises à jour — corrigées et expliquées requête par requête.

Objectif du TD : consolider l'interrogation classique et la mise à jour en SQL, sur les tables du club LaRaquette déjà utilisées au TD 3.01.

Le schéma LaRaquette
terrain      (tno, tnom, type)
abonne       (ano, anom, prenom, datnaiss, adresse, dateFinAbo, parrain *)
creneau      (jour, heure)
reservation  (tno *, respno *, invitno *, jour *, heure *, utilise)

Les corrigés sont dans les accordéons : cherchez d'abord, révélé ensuite. Pour chaque requête, l'accent est mis sur le piège — ce qui fait perdre des points.

1. Requêtes évoluées

2. Requêtes avec fonctions

Chaque question tient en un WHERE, mais les fonctions de dates et de chaînes tombent souvent en contrôle.

3. Requêtes de mise à jour

Ici, la difficulté n'est pas la syntaxe mais la prudence : toujours exécuter d'abord le SELECT équivalent pour voir ce qui va partir.

Ce qu'il faut savoir refaire

  • Auto-jointure : une relation réflexive (parrain) se lit en joignant la table à elle-même sous deux rôles (parrain / filleul).
  • « Plusieurs … » ≠ « plusieurs fois » : COUNT(DISTINCT col) compte les valeurs, COUNT(*) compte les occurrences.
  • Filtrer sur une agrégation : toujours HAVING, jamais WHERE.
  • « Disponible / libre / sans… » : NOT EXISTS avec corrélation, après avoir fabriqué toutes les combinaisons (CROSS JOIN) si besoin.
  • Le maximum avec ex æquo : sous-requête MAX, pas LIMIT 1.
  • Dates : EXTRACT, CURRENT_DATE, INTERVAL '1 year', ILIKE pour les chaînes.
  • UPDATE/DELETE : toujours tester le SELECT équivalent avant, et vérifier la clé étrangère avant de supprimer un parent.

td-laraquette-suite.pdf

TD 3.02 — Rappels BDD : LaRaquette, la suite · 1 page

Consultation seule — téléchargement désactivé

Chargement du document…

Dernière mise à jour le

Sur cette page