Importer ce fichier SQL dans MySQL et effectuer des requètes pour répondre aux questions suivantes :
Solution (clic-droit "Enregistrer sous" pour respecter l'encodage)
En Europe, de nombreux produits agricoles sont protégés par une Appellation d'origine protégée (AOP) ou par une Indication Géographique protégée (IGP).
Télécharger la liste des produits français bénéficiant de cette protection, et examiner cette liste. Chacun de ces produits peut être fabriqué sur une Zone d'appellation possédant une Identifiant d'Appellation (IDA) unique.
Chaque zone IDA pour couvrir une ou pluisieurs communes. La table de correspondance entre les codes IDA et les codes INSEE des communes étant volumineuse, nous l'avons decomposé en 2 fichiers : table1 et table2.
Vous trouverez aussi la liste des communes avec leur code INSEE, faisant partie d'au moins une zone d'appellation.
1. Examiner toutes ces donnnées et concevez un modèle de base de données.
2. Importez ces fichiers dans une base de données MySQL
3. Trouvez la liste des produits bénéficiant d'une protection à Chalon-sur-Saône
4. Donner la liste des communes où peut être fabriqué le Comté
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)
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.