Activité Insertions et requêtes

Consigne

Avant de commencer, veuillez lire une première fois le document dans son ensemble.

Le travail est individuel. Vous pouvez communiquer en respectant le code d’honneur. Si vous être bloqué, demandez de l’aide afin de ne pas prendre trop de retard.

Situation

Vous travaillez avec une base de données d’une entreprise de commerce en ligne.

Le modèle de données comprend huit tables principales :

  • Utilisateurs,
  • Produits,
  • Commandes,
  • Détails de Commandes,
  • Fournisseurs,
  • Catégories,
  • Avis,
  • Envois.

Objectifs

  • Comprendre et appliquer les concepts de base de la manipulation et de l’interrogation des données SQL.
  • Utiliser des requêtes avancées pour analyser et gérer les données d’une base de données complexe.

Résultat attendu

N/A

Ressources

Mise en route

  • Connectez-vous au serveur de bases de données qui vous a été attribué au module 164.
  • Effectuez les tâches demandées les une après les autres.

À vous de jouer !

Tâches

Implémentez le modèle logique

Tables

Utilisateurs

  • userID (PK)
  • nom
  • email
  • statut

Produits

  • produitID (PK)
  • nom
  • prix
  • categorieID (FK)
  • fournisseurID (FK)

Commandes

  • commandeID (PK)
  • userID (FK)
  • dateCommande
  • montantTotal

DetailsCommandes

  • commandeID (FK)
  • produitID (FK)
  • quantite
  • prixUnitaire

Fournisseurs

  • fournisseurID (PK)
  • nom
  • contact

Categories

  • categorieID (PK)
  • nom

Avis

  • avisID (PK)
  • produitID (FK)
  • userID (FK)
  • note
  • commentaire

Envois

  • envoiID (PK)
  • commandeID (FK)
  • dateEnvoi
  • statut

Relations

  • Une Commande peut inclure plusieurs Produits (via DetailsCommandes).
  • Un Utilisateur peut passer plusieurs Commandes.
  • Un Produit peut appartenir à une Categorie et être fourni par un Fournisseur.
  • Un Produit peut avoir plusieurs Avis.
  • Chaque Commande a un Envoi associé.

Données de test

On vous propose les données suivantes, mais vous pouvez utiliser vos propres données.

Astuce : Créez un fichier SQL pour insérer les données!

Table Utilisateurs

userID nom email statut
1 Alice Martin alice.m@example.com Actif
2 Bob Smith bob.s@example.com Actif
3 Claire Rouge claire.r@example.com Désactivé



Table Produits

produitID nom prix categorieID fournisseurID
101 T-shirt Bleu 20 1 10
102 Jeans Noir 40 2 11
103 Casquette Verte 15 3 12



Table Commandes

commandeID userID dateCommande montantTotal
1001 1 2021-07-15 60
1002 2 2021-07-16 20



Table DetailsCommandes

commandeID produitID quantite prixUnitaire
1001 101 2 20
1002 102 1 40



Table Fournisseurs

fournisseurID nom contact
10 BlueCloth Inc. contact@blue.com
11 BlackJeans Co. info@blackj.com



Table Categories

catégorieID nom
1 Vêtements
2 Pantalons



Table Avis

avisID produitID userID note commentaire
501 101 1 5 Super qualité!
502 103 2 4 Bonne casquette.



Table Envois

envoiID commandeID dateExpedition statut
201 1001 2021-07-17 Expédié
202 1002 2021-07-18 En préparation

Requêtes de sélection

  • Écrivez une requête SQL pour sélectionner tous les produits d’une catégorie spécifique.
  • Affichez les noms des utilisateurs ayant passé une commande ce mois-ci.

Requêtes avec jointures

  • Créez une requête pour afficher les détails des commandes, y compris les informations des produits et des utilisateurs.
  • Listez tous les produits qui n’ont pas encore été expédiés.

Fonctions d’agrégation

  • Calculez le montant total des ventes pour chaque catégorie de produits.
  • Déterminez le nombre moyen d’articles par commande.

Sous-requêtes et requêtes imbriquées

  • Identifiez les utilisateurs qui ont dépensé plus que la moyenne des dépenses des utilisateurs.
  • Sélectionnez les produits qui ont reçu exclusivement des avis de 5 étoiles.

Mise à jour et suppression

  • Mettez à jour le statut d’envois d’une commande spécifique.
  • Supprimez tous les avis des utilisateurs.