-
SQL et algèbre: Les noms des TGV qui s'arrêtent à Lyon (le
départ et l'arrivée sont comptés comme arrêts)
Solution:
SQL:
select NomTGV
from TGV, Arret
where TGV.NumTGV = Arret.NumTGV
and GareArr = 'Lyon'
Algèbre:
pNomTGV(TGV |><| sGareArr='Lyon'(Arret))
- SQL: Les numéros des TGV qui s'arrêtent d'abord à Lyon et
après à Aix en Provence
Solution:
SQL:
select A.NumTGV
from Arret A, Arret B
where A.NumTGV = B.TGV
and A.GareArr = 'Lyon'
and A.GareArr = 'Aix'
and A.NumArr < B.NumArr
- SQL et algèbre: Les numéros des TGV qui s'arrêtent à Lyon
mais pas à Aix en Provence
Solution:
SQL:
select NumTGV
from Arret
where GareArr = 'Lyon'
and NumTGV not in (select NumTGV
from Arret
where GareArr = 'Aix')
Algèbre:
pNumTGV(sGareArr='Lyon'(Arret)) - pNumTGV(sGareArr=Aix'(Arret))
- SQL et algebre: Les noms des passagers qui descendent du
train 411 dans sa gare terminus.
Solution:
SQL:
select NomPass
from Reservation R, TGV T
where R.NumTGV = 411
and T.NumTGV = 411
and R.GareArr = T.GareTerm
ou
select NomPass
from Reservation R, TGV T
where R.NumTGV = 411
and T.NumTGV = R.NumTGVC
and R.GareArr = T.GareTerm
Alg:
| pNomPass(sNumTGV=411(Reservation) |><|GareArr=GareTerm |
| (pGareTerm(sNumTGV=411TGV))) |
- SQL: Traduisez la requête calcul domaine suivante en SQL :
{a,b,h| $ c, d (TGV(a, b, c) Ù Arret(a, d, c, h))}
Solution:
select TGV.NumTGV, TGV.NomTGV, Arret.HeureArr
from TGV, Arret
where TGV.NumTGV = Arret.NumTGV
and TGV.GareTerm = Arret.GareArr
- Expliquez le résultat de la requête précédente en Français?
Solution:
Les TGVs (nom et numéro) et l'heure d'arrivée à leur gare terminus.
- SQL: Le nombre de réservations dans le TGV 'Le Valais'
pour le 21/06/2001
Solution:
select count(*)
from TGV, Reservation
where NomTGV = 'Le Valais'
and TGV.NumTGV = Reservation.TGV
and Date='21/06/2001'
- SQL: Les noms des voyageurs qui ont pris (réservé) plus
que trois fois le TGV 512.
Solution:
select NomPass
from Reservation
where NumTGV = 512
group by NomPass
having count(*) > 3
ou
select R1.NomPass
from Reservation R1
where 3 < (select count(*)
from Reservation R2
where R2.NumTGV = 512
and R2.NomPass = R1.NomPass)