Td corrigé TD N°2 BD5 EN SQL a) Nom et Prime des joueurs sponsorisés par ... pdf

TD N°2 BD5 EN SQL a) Nom et Prime des joueurs sponsorisés par ...

TD N°2 BD5 EN SQL. a) Nom et Prime des joueurs sponsorisés par Peugeot entre 1985 et 1990. SELECT Nomjoueur , Prime. FROM GAIN. WHERE ...




part of the document




TD N°2 BD5 EN SQL


a) Nom et Prime des joueurs sponsorisés par Peugeot entre 1985 et 1990

SELECT Nomjoueur , Prime
FROM GAIN
WHERE NomSponsor = ‘Peugeot’ AND
Date BETWEEN 1985 AND 1990 ;

Ou

SELECT Nomjoueur , Prime
FROM GAIN
WHERE NomSponsor = ‘Peugeot’ AND
Date >= 1985 AND Date= 1 000 000 AND
NOT EXISTS ( SELECT *
FROM GAIN G2
WHERE LieuTournoi = ‘Rolland Garros’ AND
G2.Prime < 1 000 000 AND
G1.NomJoueur = G2.NomJoueur);

Avec Minus
SELECT DISTINCT NomJoueur
FROM GAIN
WHERE LieuTournoi = ‘Rolland Garros’ AND
Prime > 1 000 000
MINUS ( SELECT DISTINCT NomJoueur
FROM GAIN
WHERE LieuTournoi = ‘Rolland Garros’ AND
Prime < 1 000 000);


Avec IN
SELECT NomJoueur
FROM GAIN
WHERE LieuTournoi = ‘Rolland Garros’ AND
Prime >= 1 000 000 AND
NomJoueur NOT IN (SELECT DISTINCT NomJoueur
FROM GAIN
WHERE LieuTournoi = ‘Rolland Garros’ AND
Prime < 1 000 000 );

Sans MINUS , IN ou EXISTS
SELECT NomJoueur
FROM GAIN G
WHERE 1 000 000 R1.NomGagnant AND
J2.Nom = R1.NomPerdant))AND
NOT EXISTS (SELECT *
FROM RENCONTRE R2
WHERE (J1.Nom > R2.NomPerdant AND
J2.Nom = R2.NomGagnant));


h) Nom des joueurs ayant participé à tous les tournois de Rolland Garros

SELECT NomJoueur
FROM GAIN G1
WHERE NOT EXISTS ((SELECT DISTINCT Date
FROM GAIN
WHERE LieuTournois = ‘Rolland Garros’)
MINUS
(SELECT Date
FROM GAIN G2
WHERE G1.NomJoueur = G2.NomJoueur AND
G1.LieuTournoi = ‘Rolland Garros’));

L’opération division n’existe pas en SQL

i) Nombre de joueur ayant participé au tournoi de Wimbledon en 1989

SELECT COUNT(*) ( COUNT(NomJoueur)
FROM GAIN
WHERE LieuTournoi = ‘Wimbledon’ AND
Date = 1989 ;

j) Moyenne des primes gagnées par année

SELECT AVG(Prime)
FROM GAIN
GROUP BY Date ;

AVG c’est la Moyenne