M1info Lgreq td2

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 2

Dpartement Informatique et Statistique, Facult de SEG, Universit Lumire Lyon 2 Correction

Master dInformatique M1 Anne 2006-2007


Langages de requtes TD n 2 -- 1
select * from vol;
J. Darmont (http://eric.univ-lyon2.fr/~jdarmont/), 01/02/07
-- 2
select plnom, plprenom, ville from pilote order by plnom desc, plprenom desc;
Interrogation dune base de donnes
-- 3
select plnom, plprenom, salaire from pilote where salaire > 20000;
Formuler les requtes SQL suivantes sur la base de donnes PILOTE-AVION-VOL du TD n 1.
-- 4
NB : Sous SQL*Plus, crer un fichier de commande (script) diffrent pour chacune des requtes. select avnum, avnom from avion where localisation = 'Paris';

-- 5
1. Liste de tous les vols. select plnom, plprenom from pilote where salaire > &salaire_plafond;
2. Nom, prnom et ville de tous les pilotes, par ordre alphabtique inverse.
-- 6
3. Nom, prnom et salaire des pilotes dont le salaire est suprieur 20 000 . select distinct villearr from vol where villedep = '&Ville_de_dpart';
4. Numro et nom des avions localiss Paris. -- 7
select avnum, avnom, capacite, localisation
5. Nom et prnom des pilotes dont le salaire est suprieur un salaire plafond saisi au clavier from avion, pilote
(paramtre). where localisation = ville
and plnom = '&nom_pilote';
6. Villes accessibles (sans doublon) depuis une ville de dpart dont le nom est saisi au clavier
(paramtre) -- 8
7. Caractristiques (AVNUM, AVNOM, CAPACITE, LOCALISATION) des avions localiss select volnum, villedep, villearr, heuredep, heurearr, avnom, plnom
from pilote p, avion a, vol v
dans la mme ville quun pilote dont le nom est saisi au clavier (paramtre). where p.plnum = v.plnum and a.avnum = v.avnum
8. Caractristiques (VOLNUM, VILLEDEP, VILLEARR, HEUREDEP, HEUREARR, AVNOM, and volnum = &numero_vol;
PLNOM) dun vol dont le numro est saisi au clavier (paramtre). -- 9
9. Nom, prnom et numro de vol des pilotes affects (au moins) un vol. select plnom, plprenom, volnum
from pilote p, vol v
10. Numro et nom des avions affects des vols (liminer les doublons utiliser au moins deux where p.plnum = v.plnum;
mthodes diffrentes).
-- 10
11. Nombre total de vols. select distinct a.avnum, avnom select distinct avnum, avnom
from avion a, vol v from avion
12. Somme des capacits de tous les avions. where a.avnum = v.avnum; where avnum in (
-- select avnum from vol );
13. Moyenne et cart-type des dures des voyages. select distinct avnum, avnom
14. Capacits minimum et maximum des avions. from avion a
where exists (
15. Nombre de vols par pilote (indiquer uniquement le numro des pilotes). select * from vol v
where a.avnum = v.avnum );
16. Nombre total dheures de vol par pilote (prciser le nom des pilotes).
-- 11
17. Numro et nom des avions qui ne sont affects aucun vol (utiliser au moins trois mthodes select count(*) from vol;
diffrentes).
-- 12
18. Nom et prnom des pilotes qui ont vol sur tous les avions (utiliser deux mthodes diffrentes select sum(capacite) from avion;
pour effectuer cette division).
-- 13
Stratgie n 1 : Rechercher les pilotes tels quil nexiste pas davion tel quil nexiste pas de vol select avg(heurearr - heuredep), stddev(heurearr - heuredep) from vol;
pour ce pilote et cet avion.
-- 14
Stratgie n 2 : Rechercher les pilotes qui ont vol sur un nombre davions diffrents gal au
select min(capacite), max(capacite) from avion;
nombre total davions dans la base de donnes.
-- 15
select plnum, count(volnum) from vol
group by plnum;

Langages de requtes TD n 2 1/1 Langages de requtes TD n 2 2/1


-- 16
select plnom, sum(heurearr - heuredep)
from pilote p, vol v
where p.plnum = v.plnum
group by plnom;

-- 17
select avnum, avnom from avion select avnum, avnom from avion
where avnum not in ( where avnum <> all (
select avnum from vol ); select avnum from vol );
-- --
select avnum, avnom from avion a select avnum, avnom from avion a
where not exists ( where 0 = (
select * from vol v select count(*) from vol v
where a.avnum = v.avnum ); where a.avnum = v.avnum );
--
select avnum, avnom from avion
minus
select a.avnum, avnom from avion a, vol v where a.avnum = v.avnum;

-- 18
select plnom, plprenom from pilote p select plnom, plprenom
where not exists ( from pilote p, vol v
select * from avion a where p.plnum = v.plnum
where not exists ( group by plnom, plprenom
select * from vol v having count(distinct avnum) = (
where p.plnum = v.plnum select count(*) from avion );
and a.avnum = v.avnum ) );

Langages de requtes TD n 2 3/1

Vous aimerez peut-être aussi