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
idest une clé primaireproduct_idest 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é
- Insérer plusieurs avis pour un même produit
- Insérer au moins un avis pour un autre produit
- 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 :
- Afficher tous les avis
- Afficher les avis avec le nom du produit correspondant
- Afficher tous les avis d’un produit donné
- Afficher les produits qui ont au moins un avis
5. Mise à jour des données liées (UPDATE)
Travail demandé
- Modifier la note d’un avis
- Modifier le commentaire d’un avis
- Vérifier les modifications à l’aide d’une requête de lecture