Importer ce fichier SQL dans MySQL et effectuer des requètes pour répondre aux questions suivantes :
On s'intéresse aux données de la gestion commerciale d'une petite boutique de jouets en bois.
I. Examinez attentivement les fichiers de données suivants pour comprendre les relations qui les lient.
produits.csv, clients.csv, Commande.csv, ligneCommande.csv
Créez un modèle conceptuel de données avec Looping ou tout autre outil à votre convenance.
II. Dans le SGBB MySQL, créez une nouvelle base de données
Dans cette base de données, créez les tables issues de votre modèle conceptuel de données, puis importez les données à partir des fichiers .csv
III. Ecrivez des requêtes permettant de
On trouve dans la table "produits" et dans la table "ligneCommande" des champs relatifs au prix de vente. Il y a là une certaine redondance. Expliquez en quoi cette redondance peut être utile.
Modèle conceptuel de données
Code SQL de création des tables :
CREATE TABLE Client(numClient INT, civilite VARCHAR(50), nom VARCHAR(50), prenom VARCHAR(50),
adresse VARCHAR(150), codepostal CHAR(7), ville VARCHAR(50), pays VARCHAR(50),
PRIMARY KEY(numClient));
CREATE TABLE Produit(numProduit INT, famille VARCHAR(50), nom VARCHAR(50), prixHT DECIMAL(15,2),
prixPromoHT DECIMAL(15,2), TVA DECIMAL(15,2), designation VARCHAR(250), PRIMARY KEY(numProduit));
CREATE TABLE Commande(numCommande INT, dateCommande DATE, numClient INT NOT NULL,
PRIMARY KEY(numCommande), FOREIGN KEY(numClient) REFERENCES Client(numClient));
CREATE TABLE ligneCommande(numProduit INT, numCommande INT, prixTTC DECIMAL(15,2), quantite INT,
PRIMARY KEY(numProduit, numCommande), FOREIGN KEY(numProduit) REFERENCES Produit(numProduit),
FOREIGN KEY(numCommande) REFERENCES Commande(numCommande));
Question 1
SELECT * FROM produit ORDER BY prixHT DESC
Question 2
SELECT * FROM clientele WHERE pays<>"France"
Question 3
SELECT sum(prixTTC*Quantite) FROM ligneCommande,Commande WHERE ligneCommande.Commande=Commande.NumeroCommande and year(Date_commande)=2019
Question 4
SELECT NumProduit,titre FROM clientele, Commande, ligneCommande, produit WHERE clientele.Nom="Fostinelli" AND clientele.Prenom="Jérome" AND clientele.NumClient=Commande.NumeroClient and Commande.NumeroCommande=ligneCommande.Commande and ligneCommande.Produit=produit.NumProduit
Question 5
SELECT DISTINCT nom,prenom FROM clientele, Commande, ligneCommande, produit WHERE produit.titre="Corde à sauter" AND clientele.NumClient=Commande.NumeroClient and Commande.NumeroCommande=ligneCommande.Commande and ligneCommande.Produit=produit.NumProduit
Question 6
SELECT sum(ligneCommande.prixTTC*ligneCommande.Quantite),produit.famille FROM ligneCommande,produit WHERE ligneCommande.Produit=produit.NumProduit GROUP BY produit.famille
Question 7
SELECT SUM(Quantite) AS SOMME,titre FROM ligneCommande,produit WHERE produit.NumProduit=ligneCommande.Produit GROUP BY ligneCommande.Produit ORDER BY SOMME DESC
Question 8
SELECT produit.titre FROM produit WHERE produit.NumProduit NOT IN (SELECT ligneCommande.Produit FROM ligneCommande)
App Question 9
SELECT AVG(somme) FROM (SELECT sum(ligneCommande.prixTTC*ligneCommande.Quantite) as somme FROM ligneCommande GROUP by ligneCommande.Commande) AS PANIER
Question 10
UPDATE produit SET prixPromoHT=prixHT/1.2 WHERE famille="poupées"
La table ligneCommande contient le prix de vent du produit au moment de l'achat, alors que la table produit contient le prix de vente actuel. Entre temps, ce prix a pu changé ; il est donc indispensable d'enregistrer le prix de vente au moment de l'achat.