0% found this document useful (0 votes)
5 views

sql tp1

Uploaded by

luffy
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

sql tp1

Uploaded by

luffy
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Solution Exercice 1 :

CreateDataBase S4Ex2

USE S4Ex2

Create Table ARTICLES (NoArtintprimary key, Libelle varchar(50), Stock int);

Create Table FOURNISSEURS (NoFourintprimary key, NomFourvarchar(50),


AdrFour varchar(100), VilleFourvarchar(50));

Create Table FOURNIR (NoFourintforeign key references FOURNISSEURS (NoFour),


NoArt intforeign key references ARTICLES(NoArt), PrixArticle money, Delaiint);

insert into ARTICLES values (1,’PC Dell’,55),(2,’PC HP’,6),(3,’PC Acer’,100)

insertinto FOURNISSEURS values (1,’Ali’,’rue 5, N 6′,’Casa’)

insert into FOURNIR values (1,1,100.5,15)

insert into FOURNIR values(1,2,500.5,5)

–Executionrequêtte

–1) SELECT NoArt, Libelle FROM Articles Where Stock<10

–2) SELECT * FROM Articles WHERE PrixInventbetween 100 AND 300

–3) SELECT * FROM Fournisseurs WHERE NomFour LIKE ‘STE%’

–4) SELECT Fournisseurs.NomFour, AdrFour

FROM Fournisseurs INNER JOIN Fournir ON Fournisseurs.NoFour=Fournir.NoFour

WHERE Delai>20

–5) SELECTNoArt, Libelle FROM Articles ORDER BY Stock DESC

–6) SELECT Articles.NoArt , Libelle , Max(PrixArticle) AS ‘Prix Max’, Min(PrixArticle)


AS ‘Prix Min’, AVG(PrixArticle) AS ‘Prix Moyenne’
FROM Articles INNER JOIN Fournir ON Articles.NoArt=Fournir.NoArt

GROUP BY Articles.NoArt , Libelle

Exercice 2 – Solution :

CreateDataBase S4Ex4

USE S4Ex4

Create table ETUDIANT (NEtudiantintidentityprimary key, Nom varchar(30), Prénom

varchar(30))

Create table MATIERE (CodeMatintidentityprimary key, LibelleMatvarchar(30),

CoeffMatint)

Create table EVALUER (NEtudiantintforeign key references ETUDIANT (NEtudiant),

CodeMatintforeign key references MATIERE (CodeMat), Date smalldatetime, Note

decimal(4,2) check (Note between 0 and 20))

Go

insert into ETUDIANT values(‘Ali’,’P-Ali’)

insert into ETUDIANT values(‘Ahmed’,’P-Ahmed’)

Select * from ETUDIANT

Go

insertinto MATIERE values (‘SGBD1’,2)

insertinto MATIERE values (‘SGBD2’,2)

insertinto MATIERE values (‘ASP.Net’,3)

Select * From MATIERE


truncate table EVALUER

insert into EVALUER values (1,1,’24/10/2010′,12)

insert into EVALUER values (1,3,’24/10/2010′,12)

–1) SELECT Count(NEtudiant) FROM Etudiant

–2) SELECT Max(Note) as ‘Note Max’, Min(Note) as ‘Note Min’ FROM Evaluer

–3) SELECT Nom, LibelleMat, AVG(Note) as ‘Moyenne’ FROM Etudiant, Evaluer, Matiere

WHERE Etudiant.NEtudiant=Evaluer.NEtudiant

AND Evaluer.CodeMat=Matiere.CodeMat

GROUP By Etudiant.NEtudiant,Nom, Matiere.CodeMat,LibelleMat

Order by nom

–4) SELECT LibelleMat, AVG(Note) as ‘Moyenne’ FROM Evaluer, Matiere

WHERE Evaluer.CodeMat=Matiere.CodeMat

GROUP By Matiere.CodeMat,LibelleMat

–5) SELECT Nom, SUM(Note* CoeffMat)/SUM(CoeffMat) as ‘MgEtud’

FROM Etudiant, Evaluer, Matiere

WHERE Etudiant.NEtudiant=Evaluer.NEtudiant

AND Evaluer.CodeMat=Matiere.CodeMat

GROUP By Etudiant.NEtudiant,Nom

–6) CreateViewMgEtud

as SELECT SUM(Note* CoeffMat)/SUM(CoeffMat) as ‘MgEtud’


FROM Etudiant, Evaluer, Matiere

WHERE Etudiant.NEtudiant=Evaluer.NEtudiant

AND Evaluer.CodeMat=Matiere.CodeMat

GROUP By Etudiant.NEtudiant

Go

SELECT AVG(MgEtud) as ‘MoyPromotion’

FROM MgEtud

–7)CreateViewMoyPromotion

as SELECT AVG(MgEtud) as ‘MoyPromotion’

FROM MgEtud

SELECT Nom, SUM(Note* CoeffMat)/SUM(CoeffMat) as ‘MgEtud’

FROM Etudiant, Evaluer, Matiere

WHERE Etudiant.NEtudiant=Evaluer.NEtudiant

AND Evaluer.CodeMat=Matiere.CodeMat

GROUP By Etudiant.NEtudiant,Nom

HavingSUM(Note* CoeffMat)/SUM(CoeffMat)>(select MoyPromotion

fromMoyPromotion)

You might also like