Skip to main content

TP 2 - Relations entre tables en SQL

Objectif du TP

Ce TP est la suite directe du TP 1.
Il a pour objectif d’introduire la notion de relations entre tables en SQL.

À la fin de ce TP, vous serez capable de :

  • Créer une nouvelle table liée à une autre
  • Comprendre et utiliser les clés étrangères
  • Insérer des données liées
  • Lire des données provenant de plusieurs tables

Contexte

Le site de vente en ligne dispose déjà d’une table Product.
Les clients peuvent maintenant laisser des avis sur les produits.

Chaque avis :

  • concerne un seul produit
  • un produit peut avoir plusieurs avis

1. Rappel des tables existantes

Table Product (déjà créée au TP 1)

La table Product contient les produits du site.

Vous devez réutiliser la table créée lors du TP 1.

2. Création de la table Avis

La table Avis représente les avis laissés par les clients sur les produits.

Champs attendus

| Champ | Description | ||| | id | Identifiant unique de l’avis | | product_id | Identifiant du produit concerné | | author | Nom de l’auteur de l’avis | | rating | Note du produit (ex : de 1 à 5) | | comment | Commentaire de l’avis |

Contraintes

  • id est une clé primaire
  • product_id est une clé étrangère liée à Product(id)
  • Un avis doit obligatoirement être lié à un produit
  • La note doit être comprise entre 1 et 5

Travail demandé

  • Écrire le script SQL permettant de créer la table Avis
  • Mettre en place la relation avec la table Product

3. Insertion des données liées (CREATE)

Travail demandé

  1. Insérer plusieurs avis pour un même produit
  2. Insérer au moins un avis pour un autre produit
  3. Vérifier que chaque avis est bien lié à un produit existant

4. Lecture des données avec relations (READ)

Travail demandé

Écrire les requêtes SQL permettant de :

  1. Afficher tous les avis
  2. Afficher les avis avec le nom du produit correspondant
  3. Afficher tous les avis d’un produit donné
  4. Afficher les produits qui ont au moins un avis

5. Mise à jour des données liées (UPDATE)

Travail demandé

  1. Modifier la note d’un avis
  2. Modifier le commentaire d’un avis
  3. Vérifier les modifications à l’aide d’une requête de lecture

6. Suppression et intégrité référentielle (DELETE)

Travail demandé

  1. Supprimer un avis
  2. Essayer de supprimer un produit qui possède des avis
  3. Observer et expliquer le comportement de la base de données

Conclusion

Dans ce TP, vous avez appris à :

  • Créer une relation entre deux tables
  • Manipuler des données liées
  • Comprendre les bases de l’intégrité référentielle

Les relations entre tables sont essentielles pour modéliser des données réelles dans une base de données relationnelle.