0% ont trouvé ce document utile (0 vote)
690 vues3 pages

Exercices SQL : Jointures et Requêtes

Ce document présente trois exercices sur les jointures et requêtes imbriquées dans une base de données. Le premier exercice demande de trouver le ou les emplois ayant le salaire moyen le plus bas dans une base de données départements et employés. Le deuxième exercice interroge une base de données sur les vols d'une compagnie aérienne. Le troisième exercice présente une base de données sur les livres, auteurs, exemplaires et emprunts dans une bibliothèque.

Transféré par

Insaf Achour
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
690 vues3 pages

Exercices SQL : Jointures et Requêtes

Ce document présente trois exercices sur les jointures et requêtes imbriquées dans une base de données. Le premier exercice demande de trouver le ou les emplois ayant le salaire moyen le plus bas dans une base de données départements et employés. Le deuxième exercice interroge une base de données sur les vols d'une compagnie aérienne. Le troisième exercice présente une base de données sur les livres, auteurs, exemplaires et emprunts dans une bibliothèque.

Transféré par

Insaf Achour
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

TD 3 

: Jointure et requêtes imbriquées

Exercice 1

Soit la base de données suivante :


   Départements ( DNO, DNOM, DIR, VILLE)
   Employés ( ENO, ENOM, PROF, DATEEMB, SAL, COMM, #DNO)
Donnez le ou les emplois ayant le salaire moyen le plus bas, ainsi que ce salaire moyen

SELECT PROF FROM Employes GROUP BY PROF

HAVING AVG(SAL)=(SELECT AVG(SAL) as moy FROM Employes

GROUP BY PROF ORDER BY moy ASC)

Exercice 2 :

On considère la base de données BD_AIR_Italie suivante :

  PILOTE (NUMPIL, NOMPIL, VILLE, SALAIRE)

  AVION (NUMAV, NOMAV, CAPACITE, VILLE)

  VOL (NUMVOL, #NUMPIL, #NUMAV, VILLE_DEP, VILLE_ARR, H_DEP, H_ARR)

Quels sont les numéros des pilotes qui ne sont pas en service ?

SELECT NUMPIL FROM PILOTE WHERE NUMPIL NOT IN (SELECT DISTINCT NUMPIL FROM VOL)

Quels sont les vols effectués par un avion qui n’est pas localisé à Milano ?

SELECT DISTINCT [Link] FROM VOL V, AVION A WHERE [Link]=[Link] AND [Link] !=’Milano’

Exercice 3:

a. Afficher la somme des achats effectués pour chaque client


b. Ajouter +1 au prix d’achat du client ‘Dupont’
a) SELECT idclient, SUM(prix) from achats 
NATURAL JOIN client
 GROUP BY (idclient);
b) UPDATE achat,client
SET priw = prix +1
WHERE ([Link] = "dupont" )AND( [Link] = [Link] );
TD 3 : Jointure et requêtes imbriquées

Soit la base suivante :


auteur(idauteur, nom, prenom)
ouvrage(idouvrage, ISBN, titre, editeur, dateedition)
ecrire(#idauteur, #idouvrage)
exemplaire(#idouvrage, idexemplaire, etat, dateacq)
inscrit(idinscrit, nom, prenom, adresse)
emprunt(#idauteur, #idexemplaire, #idinscrit, dateemprunt, daterestitution)

a) Rechercher le numéro et le titre des livres disponibles (c.-à-d. dont au moins un


exemplaire n’est pas emprunté).
b) Rechercher le numéro et le titre des livres dont tous les exemplaires sont empruntés.
c) Rechercher le numéro et le titre des livres disponibles (c.-à-d. dont au moins un
exemplaire n’est pas emprunté) édités après le 1 septembre 2003 dont le titre contient le
mot "motivation".

(SELECT id_ouv, COUNT(*) as n_empruntes

FROM emprunt

GROUP BY id_ouv)

(SELECT id_ouv, 0 as n_empruntes

FROM ouvrage

WHERE id_ouv NOT IN (SELECT id_ouv FROM emprunt));

g)

SELECT titre, id_ouv

FROM

(SELECT id_ouv

FROM exemplaire

WHERE id_ouv, id_exmp NOT IN

(SELECT id_ouv, id_exmp FROM emprunt))

NATURAL JOIN ouvrage;

h)

SELECT titre, id_ouv

FROM ouvrage

WHERE id_ouv NOT IN

(SELECT id_ouv
TD 3 : Jointure et requêtes imbriquées

FROM exemplaire

WHERE id_ouv, id_exmp NOT IN

(SELECT id_ouv,id_exmp FROM Emprunt));

Vous aimerez peut-être aussi