Activité Insertions et requêtes
Table des matières
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
- 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 | 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.