100% ont trouvé ce document utile (1 vote)
241 vues4 pages

Solution SQL Sadiq

Transféré par

andyroad
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
241 vues4 pages

Solution SQL Sadiq

Transféré par

andyroad
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP SQL sous MYSQL

Supports en ligne :[Link]


Soit la base de donnes Magazine : CLIENT (NumCli, Nom, Prnom, DateNaiss, Rue, CP, Ville) PRODUIT (NumProd, Desig, PU, #NumFour) FOURNISSEUR (NumFour, RaisonSoc) COMMANDE (#NumCli, #NumProd, DateC, Quantite) 1. Crez la base de donnes MAGAZINE CREATE DATABASE MAGAZINE Quelques commandes utiles Show databases : fait la liste des bases de donns sur le serveur MySQL Use base: indique MySQL le nom de la base de donnes par dfaut Show tables : fait la liste des tables sur une base donne Desc table : fait la liste des colonnes d'une table et les types des colonnes.

1. Crez les tables : Client, Fournisseur, Produit et Commande en respectant les conditions suivants : Prix unitaire ne doit pas dpasser 30000DH, La quantit commande doit tre suprieure zro. Table client CREATE TABLE CLIENT ( NumCli INT, Nom VARCHAR(30), PRENOM VARCHAR(30), DateNaiss DATE, Rue VARCHAR(100), CP INT, Ville VARCHAR(40), CONSTRAINT PK_CLIENT PRIMARY KEY (NumCli) ); Table Produit CREATE TABLE PRODUIT ( NumProd INT, Desig VARCHAR(30), PU DOUBLE, NumFour INT Not NULL, CONSTRAINT PK_PRODUIT PRIMARY KEY (NumProd), CONSTRAINT FK_PRODUIT_NUMFOUR FOREIGN KEY (NumFour) Table Commande CREATE TABLE COMMANDE ( NumCli INT, NumProd INT, DateC DATE , Quantite INT NOT NULL, CONSTRAINT PK_COMMANDE PRIMARY KEY (NumCli, NumProd, DateC), CONSTRAINT Table Fournisseur CREATE TABLE Fournisseur( NumFour INT, RaisonSoc VARCHAR(30), CONSTRAINT PK_FOURNISSEUR PRIMARY KEY (NumFour) );

REFERENCES Fournisseur (NumFour), CONSTRAINT CK_PRODUIT_PU CHECK (PU<30000) );

FK_COMMANDE_NUMCLI FOREIGN KEY (NumCli) REFERENCES Client(NumCli), CONSTRAINT FK_COMMANDE_NUMPROD FOREIGN KEY (NumProd) REFERENCES Produit(NumProd), CONSTRAINT CK_COMMANDE_QTE CHECK (QTE>0) );

2. Supprimer toutes les tables de la base de donnes et les recrez une deuxime fois DROP TABLE Commande; DROP TABLE Produit; DROP TABLE Fournisseur; DROP TABLE Client; Afficher la description dune table DESC Commande ; A. Modification de la structure dune table et remplissage des tables 3. Ajouter lattribut Adr dans la table client ALTER TABLE CLIENT ADD(Adr VARCHAR(50)) ; 4. Supprimer lattribut Rue de la table client ALTER TABLE CLIENT DROP COLUMN Rue ; 5. Modifier le type de lattribut Adr VARCHAR(100) ALTER TABLE CLIENT MODIFY Adr VARCHAR(100) ; 6. Remplir les tables par les valeurs des tableaux en haut
Remplissage de la table CLIENT INSERT INTO CLIENT (NumCli, Nom, Prenom, DateNaiss, CP, Ville,adr) VALUES (1, "SALMI","SAMI","1944-02-12", 100023, "Rabat","Rue 17") ; INSERT INTO CLIENT (NumCli, Nom, Prenom, DateNaiss,CP, Ville) VALUES (2, "IMALLA","KAMEL", "1944-12-14",100024,"Rabat") ; INSERT INTO CLIENT (NumCli, Nom, Prenom, CP, Ville,adr) VALUES (3, "Skfali","Ali",100025,"Rabat","Rue 28") ; Remplissage de la table FOURNISSEUR

INSERT INTO FOURNISSEUR VALUES (1,"SOS SALMI"); INSERT INTO FOURNISSEUR VALUES (2,"SOS INCONNU"); INSERT INTO FOURNISSEUR VALUES (3,"SOS MED ALI"); Remplissage de la table PRODUIT INSERT INTO PRODUIT VALUES (10, "PRO10",1100,1); INSERT INTO PRODUIT VALUES (20, "PRO20",2045.25,3); Remplissage de la table COMMANDE INSERT INTO COMMANDE VALUES (1,10,"2011-02-12",2); INSERT INTO COMMANDE VALUES (3,20,"2011-07-16",4); INSERT INTO COMMANDE VALUES (3,10,"2011-09-20",6); INSERT INTO COMMANDE VALUES (1,20,"2011-11-26",3);

B. Manipulation de la table 7. Donnez la liste de tous les clients par ordre alphabtique inverse de nom. SELECT * FROM client ORDER BY nom DESC ; 8. Calculez le prix TTC de tous les produits sachant que le TVA = 20%. SELECT PU+PU*1.8 FROM produit; Ou SELECT PU+PU*1.8 AS Prix_TTC FROM produit ; 9. Donnez les Noms et Prnoms de tous les clients (projection) SELECT Nom, Prenom FROM Client ; 10. Donnez la liste des Clients qui habitent Rabat, SELECT * FROM client WHERE ville=Rabat ; 11. Donnez les commandes en quantit au moins gale 3 SELECT * FROM Commande WHERE Quantite>=3; 12. Donnez les Produits dont le prix unitaire est compris entre 2000 ,00 DH et 2500,00 DH SELECT * FROM produit WHERE PU BETWEEN 2000 AND 2500; 13. Donnez les Commandes en quantit indtermine SELECT * FROM Commande WHERE Quantite IS NULL; 14. Donnez les Clients habitant une ville dont le nom se termine par AT SELECT * FROM client WHERE UPPER(Ville) LIKE %AT ; 15. Donnez les Prnoms des clients dont le nom est SAMI, SALAH ou ALI SELECT prenom FROM client WHERE UPPER (Nom) IN (SAMI, SALAH, ALI); 16. Donnez la Moyenne des prix unitaire des produits SELECT AVG (PU) FROM Produit;

17. Quel est Nombre total de commandes ? SELECT COUNT (NumCli) FROM Commande. 18. Quel est le Nombre de clients ayant pass commande ? SELECT COUNT (DISTINCT NumCli) FROM Commande; 19. Donnez la Liste des noms et prnoms des clients qui ont lanc des commandes. SELECT Nom, Prenom FROM Client, Commande WHERE [Link] = [Link]; 20. Donnez la Liste des numros, noms et prnoms des clients qui ont lanc des commandes SELECT [Link], Nom, Prenom From Client cli, commande cmd WHERE [Link]=[Link]; 21. Donnez la Liste des numros, noms et prnoms des clients qui ont command le 16-07-2011 SELECT [Link], Nom, Prenom FROM Client cli, Commande cmd WHERE [Link] = [Link] AND DateC = 2011-11-26; 22. Donnez la Liste des clients qui ont pass au moins une commande SELECT * FROM Client cli WHERE EXISTS (SELECT * FROM Commande cmd WHERE [Link] = [Link]); 23. Quantit totale commande par chaque client. SELECT NumCli, SUM(Quantite) FROM Commande GROUP BY NumCli; 24. Nombre de produits diffrents commands par chaque client SELECT NumCli, COUNT(DISTINCT NumProd) FROM Commande GROUP BY NumCli; 25. Nombre de produits diffrents commands par chaque client au moins de fvrier 2009 SELECT NumCli, COUNT(DISTINCT NumProd) FROM Commande WHERE DATEC >= 01-02-2009 AND DATEC <01-03-2009 GROUP BY NumCli; 26. Numro des produits qui soit, ont un prix infrieur 2000 DH, soit ont t commands par client N2. SELECT NumProd FROM Produit WHERE PU<2000 UNION SELECT NumProd FROM Commande WHERE NumCli=2;

[Link]

Vous aimerez peut-être aussi