Téléchargez aux formats PDF ou lisez en ligne sur Scribd
xercices : Langage SQL
Exer
fice 1
Soit la base de données "gestion_projet” permettant de gérer les projets relatifs au développement de logiciels suivante :
Developpeur (NumDev, NomDev, AdrDev, EmailDey, TelDev)
Projet (NumProj, TitreProj, DateDeb, DateFin)
Logiciel (CodLog, NomLog, PrixLog, #NumProj)
Realisation (#NumProj, #NumDev)
Eerire en SQL les requétes suivantes
1. Créer les tables « Projet » et « Logiciel », préciser clairement les types des données,
2. Afficher les noms et les prix des logiciels appartenant au projet ayant comme titre « gestion de stock », triés
dans ordre décroissant des prix.
3. Afficher le total des prix des logiciels du projet numéro 10, Lors de 'affichage, le titre de la colonne sera «
coat total du projet »
4. Afficher le nombre de développeurs qui ont participé au projet intitulé « gestion de stock ».
5. Afficher les projets qui ont plus que 5 logiciels.
6. Les numéros et noms des développeurs qui ont participés dans tous les projets.
7. Reporter la date de fin des projets dont le titre contient « Web » a la date « 17/04/2022 ».
Exercice
Soit la base de données créer par le script SQL suivant
“CREATE DATABASE
(CREATE TABLE Client (
MWC CHAR) PRIMARYKEY,
som CHAR(20),
ville CHARG
}) ENGINE=InnoDB,
(CREATE TABLE Produit (
(CREATE TABL
1dPro. CHAR(6) PRIMARYKEY,
Nom _ CHAR(0) NOT NULL UNIQUE,
Marque CHAR(30),
Prix DECIMAL(6,2)
Qstock _ SMALLINT) ENGINE=InnoDB,
Vente (
Wcl —CHAR(4) NOT NULL,
Wipro CHAR(6) NOT NULL,
date DATENOT NULL,
ge sMALLINT NOT NULL.
PRIMARY KEY (IdCi, IdPro),
POREIGN KEY (LdCli) REFERENCES Client
FOREIGN KEY (IdPro) REFERENCES Produit
(ON DELETE CASCADE ON UPDATECASCADE) ENGINE
sno
Exprimer en SQL les requétes suivantes
1
me
Donner les différentes marques de produit
Lister les produits de marque IBM, Apple ou Asus.
Donner les noms des clients qui ont acheté le produit ‘pl’
Donner les noms des produits qui n'ont pas été acheté.
Donner les noms des clients ayant acheté un produit en quantité supérieure & chacune des quantités de produits
achetées par le client ‘cl.
Donner les noms des produits moins chers que la moyenne des prix de tous les produits.
Supprimer les ventes des clients de Fes antérieures au O1-mar-2020,Solution : Exercice 1
1. Créer les tables « Projet » et « Logiciel ». préciser clairement les types des données.
CREATE TABLE Projet (
‘NumProj INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
TitreProj VARCHAR(40},
DateDeb Date,
DateFin Date,
)
ENGINE=InnoDB:
CREATE TABLE Logiciel (
‘CodeLog INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
NomLog VARCHAR(40),
PrixLog DECIMAL,
NumProj INT UNSIGNED,
CONSTRAINT fk_projet_numero On donne un nom & notre clé
FOREIGN KEY (NumProj) Colonne sur laquelle on erée la clé
REFERENCES Projet(NumProj) Solonne de référence
ENGINE=InnoDB:
2. D’afficher les noms et les prix des logiciels appartenant au projet ayant comme titre « gestion de
stock », triés dans ordre décroissant des prix.
SELECT L NomLog, L-PuixLog
FROM Logiciel L
INNER JOIN Projet P ON [Link]=P NumPro]
VHERE P-TiteProj="gestion,_de._stock
)RDER BY [Link] DES
3. D’aflicher le total des prix des logiciels du projet numéro 10, Lors de I’affichage, le titre de la
colonne sera « cours total du projet ».
LECT SUM(PrixLog) as “cout, total_ du projet
FROM Logiciel
WHERE NumPRoj
4. Afficher le nombre de développeurs qui ont participé au projet intitulé « gestion de stock »
SELECT count(*)
[FROM Developpeur D
INNER JOIN Realisation R ON [Link]
INNER JOIN Projet P ON [Link]=R NumProj
HERE [Link]="gestion _ de _ stock’
5. Afficher les projets qui ont plus que 5 logiciels
SELECT NumProj, TitreProj
FROM Projet P
INNER JOIN Logiciel L ON [Link]=L_NumPro}
(GROUP BY NumProj, TitreProj
HAVING count(*)>5
Les numéros et noms des développeurs qui ont participés dans tous les projets
SELECT NumDev, NomDev
FROM Developpeur D
INNER JOIN Realisation R ON [Link]=R NumDev
|GROUP BY NumDev, NomDev
HAVING count(*}=(SELECT COUNT(*) FROM Proje
Reporter la date de fin des projets dont le titre contient « Web » a la date « 17/04/2022 ».
UPDATE Projet
SET DateFin = "17/04/2022
WHERE TitreProj like “%Web%" ;Solution : Exercice 2
SELECT
FROM
SELECT
FROM
WHERE
SELECT
FROM
WHERE
SELECT
FROM
WHERE
SELECT
FROM
WHERE
SELECT
FROM
WHERE
DELETE
FROM
WHERE
DISTINCT Pmarque
produit P
produit P
Pamarque IN (18M", ‘Apple’ Dec’)
Crom
clientc
FaCKIN
«
SELECT Vldcir
FROM vente V
WHERE PldPro='p1"
)
[Link]
produit P
NOT EXISTS
(SELECT *
FROM vente V
WHERE [Link]= [Link])
vader
verte V
Vale >=ALL
fi
SELECT Wate
WHERE Wleci='er"
’
[Link]
produit Pt
PA pric <
(
SELECT AVG(P2 prix)
FROM produit P2
vente
date <‘01-mar-201°
AND Idi IN
SELECT C1dchi
FROM client
WHERE [Link] = Fes’