• Aucun résultat trouvé

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

N/A
N/A
Protected

Academic year: 2022

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

Copied!
1
0
0

Texte intégral

(1)

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<=1990 ;

b) Nom et Age des joueurs ayant participé au tournoi de Rolland Garros de 1989

SELECT Nom , Age FROM GAIN , JOUEUR

WHERE LieuTournoi= ‘Rolland Garos’ AND Date = 1989 AND

Nom = NomJoueur ; (cela représente la Jointure) Ou

SELECT Nom , Age FROM JOUEUR

WHERE Nom IN(SELECT NomJoueur FROM GAIN

WHERE Date = 1989 AND

LieuTournoi =’Rolland Garros’);

c) Nom et Nationalité des joueurs sponsorisés par Peugeot et ayant gagné une rencontre à Rolland Garros

SELECT Nom , Nationalité

FROM JOUEUR , RENCONTRE R , GAIN G WHERE LieuTournoi = ‘Rolland Garros’ AND R.NomGagnant = Nom AND

G.NomJoueur = Nom AND G.NomSponsor = ‘Peugeot’;

Cette méthode sort plusieurs fois des doublons si on participe à plusieurs rencontres.

(2)

Ou

SELECT Nom , Nationalité FROM JOUEUR

WHERE Nom IN( SELECT NomJoueur

FROM RENCONTRE R ,GAIN G

WHERE NomJoueur = NomGagnant AND R.LieuTournoi = ‘Rolland Garros’ AND G.NomSponsor =’Peugeot’);

Cette méthode ne sort pas de doublon même si on participe à plusieurs rencontres.

d) Nom et Nationalité des joueurs ayant participé à la fois au tournoi de Rolland Garros et à celui de Wimbledon, en 1985

Avec IN

SELECT Nom , Nationalité FROM JOUEUR

WHERE Nom IN( SELECT A.NomJoueur FROM GAIN A ,GAIN B

WHERE A.LieuTournoi = ‘Rolland Garros’ AND B.LieuTournoi = ‘Wimbledon’ AND A.Date = 1985 AND

B.Date = 1985 AND

A.NomJoueur = B.NomJoueur);

Avec EXISTS

SELECT Nom , Nationalité FROM JOUEUR J

WHERE EXISTS (SELECT * FROM GAIN

WHERE LieuTournoi = ‘Rolland Garros’ AND Date = 1989 AND

J.Nom = NomJoueur)AND EXISTS (SELECT *

FROM GAIN

WHERE LieuTournoi = ‘Wimbledon’ AND Date = 1989 AND

J.Nom = NomJoueur);

SELECT Nom , Nationalité FROM GAIN , JOUEUR J

WHERE LieuTournoi = ‘Rolland Garros’ AND Date = 1985 AND

J.Nom = NomJoueur AND EXISTS ( SELECT * FROM GAIN

WHERE LieuTournoi = ‘Wimbledon’ AND Date = 1985 AND

J.Nom = NomJoueur);

(3)

Avec l’intersection

SELECT Nom , Nationalité FROM GAIN , JOUEUR

WHERE LieuTournoi = ‘Rolland Garros’ AND Date = 1985 AND

Nom = NomJoueur INTERSECT

( SELECT Nom , Nationalité FROM GAIN , JOUEUR

WHERE LieuTournoi = ‘Wimbledon’ AND Date = 1985 AND

Nom = NomJoueur);

Sans l’intersection, ni IN, ni EXISTS

SELECT Nom, Nationalité

FROM JOUEUR J, GAIN G1, GAIN G2

WHERE G1.LieuTournoi = ‘Rolland Garros’ AND G1.Date = 1985 AND

J.Nom = G1. NomJoueur AND G2.LieuTournoi = ‘Wimbledon’ AND G2.Date = 1985 AND

J.Nom = G2.NomJoueur ;

e) Nom des joueurs ayant toutes leurs primes de Rolland Garros supérieures à 1 Millions d’Euro

Avec Exists

SELECT NomJoueur FROM GAIN G1

WHERE LieuTournoi = ‘Rolland Garros’ AND G1.Prime >= 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);

(4)

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 <= ALL (SELECT NomJoueur FROM GAIN

WHERE G.Nom = Nom AND LieuTournoi = ‘RollandGarros’)AND LieuTournoi = ‘Rolland Garros’;

f) Nom des joueurs ayant toujours perdu à Wimbledon et toujours gagné à Rolland Garros

(SELECT DISTINCT NomPerdant FROM RENCONTRE P

WHERE P.LieuTournoi = ‘Wimbledon’ AND NOT EXISTS ( SELECT *

FROM RENCONTRE G

WHERE G.LieuTournoi = ‘Wimbledon’ AND G.NomGagnant = P.NomPerdant)) INTERSECT

(SELECT DISTINCT NomGagnant FROM RENCONTRE G

WHERE G.LieuTournoi = ‘Rolland Garros’ AND NOT EXISTS ( SELECT *

FROM RENCONTRE P

WHERE P.LieuTournoi = ‘Rolland Garros’ AND P.NomPerdant = P.NomGagnant))

(5)

g) Nom et Prénom des couples de joueurs dont le premier a toujours gagné contre le second

SELECT J1.Nom, J1.Prénom, J2.Nom, J2.Prénom FROM JOUEUR J1, JOUEUR J2

WHERE J1.Nom <> J2.Nom AND EXISTS (SELECT *

FROM RENCONTRE R1

WHERE (J1.Nom > 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

Références

Documents relatifs

Le sirop et l’eau sont miscibles car ils forment un mélange homogène donc on ne peut plus les distinguer mais l’huile et l’eau ne sont pas miscibles car elles forment un

(Ivanovo, Russia) Solvation and Thermodynamic Characteristics and Intermolecular Interactions in Aqueous Solutions of Amides of Carboxylic Acids.. 9 Аминджанов А.А

Le graphe dessiné est celui d'une fonction obtenue après manipulation de la fonction de base f 1 (x) = 1/x On a commencé par rabattre la partie négative du graphe. En effet le

S.GAUTIER Mécanique 3 (M.3) : exercices 1/2.. Calculer la valeur du poids du système. Calculer le moment du poids par rapport à O... c) À l’équilibre, le moment du poids

Une pile saline, de type Leclanché, est constituée par deux couples oxydo-réducteur reliés par un pont permettant leur contact. A la borne négative, le zinc Zn(s) est oxydé en ions

petit bout par petit bout, d’abord sans musique puis avec. - Par petit groupe, corriger les uns les

La lampe halogène est plus chaude car l'intensité lumineuse maximale est émise pour une longueur d'onde plus courte (900nm au lieu de 1200nm).. D'après la loi de Wien, si  max

J’observe qu’il y a une activité sismique et volcanique importante au niveau des îles Aléoutiennes, ce qui est le cas au niveau d’une frontière de