Travaux pratiques 2 : SGBDR - krizkardiak

Point-virgule (;) à la fin de chaque requête SQL. Étoile (*) pour prendre tous les
champs d'une table. Tri simple de la liste sur tel ou tel critère. Masquer un ....
Exercices de requêtes : SQL et QBE É. Chouard - Lycée M. Pagnol Page 1.
REQUÊTES CORRIGÉES : EXERCICES SQL ET QBE. Niveau de difficulté : A (
très facile).

Part of the document

Travaux pratiques 11 : SGBDR. EXERCICE 1 Ecrire, pour chacun des exercices proposés, la requête avec sous- requête
naturellement liée 1) On souhaite les noms des pièces qui sont fournies, lors d'une
livraison, en 500 unités
1. select DISTINCT PNAME from P, (select ID_P from SPJ where
QTY='500') QTY500 where P.ID_P = QTY500.ID_P 2) On souhaite connaître les numéros de projets fournis par un
fournisseur de Londres
1. select ID_J from SPJ ,(SELECT ID_S FROM S where CITY='London')
London where SPJ.ID_S = London.ID_S 3) On souhaite connaître les noms des pièces livrées par le fournisseur
S2
1. select DISTINCT PNAME from P, (SELECT ID_P FROM SPJ where ID_S =
'S2') PieceS2 where P.ID_P = PieceS2.ID_P 4) On souhaite connaître les noms des fournisseurs de la pièce P3
1. select DISTINCT SNAME from S,(SELECT ID_S FROM SPJ where ID_P =
'P3') FournisseurP3 where S.ID_S = FournisseurP3.ID_S 5) On souhaite connaître les noms des fournisseurs d'au moins une pièce
de couleur rouge
1. select SNAME from S,(select DISTINCT ID_S from SPJ,(SELECT ID_P
FROM P where COLOR='Red') RedPiece where SPJ.ID_P =
RedPiece.ID_P) FournisseurPiceRouge where S.ID_S =
FournisseurPiceRouge.ID_S 6) On souhaite connaître les numéros des fournisseurs et les noms des
fournisseurs qui fournissent des pièces au projet Console
1. select DISTINCT S.ID_S, SNAME from S,(select ID_S from
SPJ,(SELECT ID_J FROM J where JNAME ='Console') ProjConsole
where SPJ.ID_J = ProjConsole.ID_J) ID_FournissseurConsole where
S.ID_S= ID_FournissseurConsole.ID_S EXERCICE 2 Le langage SQL est redondant, ce qui permet d'exprimer une même requête de
multiples façons.
Trouvez 8 expressions différentes (avec et sans sous requêtes) pour
obtenir le nom des fournisseurs qui ont livrés la pièces P2. AVEC sous requete select distinct SNAME from S , (SELECT ID_S FROM SPJ where ID_P = 'P2')
FournisseurP2 where S.ID_S = FournisseurP2.ID_S select DISTINCT SNAME from S where ID_S in (select ID_S from SPJ where
SPJ.ID_P ='P2') select DISTINCT SNAME from S where 'P2' in (select ID_P from SPJ where
SPJ.ID_S = S.ID_S) select DISTINCT SNAME from S where exists (select * from SPJ where S.ID_S =
SPJ.ID_S and SPJ.ID_P ='P2')
select DISTINCT SNAME from S where (select count(*) from SPJ where S.ID_S =
SPJ.ID_S and SPJ.ID_P ='P2')>0 SANS sous requite select DISTINCT SNAME from S,SPJ where SPJ.ID_P = 'P2' and SPJ.ID_S =
S.ID_S select DISTINCT SNAME from S where 'P2' =any (select ID_P from SPJ where
SPJ.ID_S = S.ID_S) select DISTINCT SNAME from S where ID_S =any(select ID_S from SPJ where
SPJ.ID_P ='P2') select DISTINCT SNAME from S join SPJ on S.ID_S = SPJ.ID_S where ID_P ='P2'