Bonjour à tous !!!
J'ai trouvé quelques exercices de base de données mais je n'ai pas la correction donc j'aimerais connaitre certaines réponses
Alors voici ma base :
Hotel (codeH, nomH, villeH, nbEtoile) clé primaire=codeH
Chambre(codeCham,numCham,codeH,nbPersonne,prix,TV)clé primaire=codeCham
Client (codeC , nomC , adresse , villeC) clé primaire=codeC
Réservation (codeCham , dateR , codeC) clés primaires=codeCham et dateR
Questions:
1/Est-ce que une personne peut réserver le meme jour plusieurs chambre ? Dans le meme hotel ou dans des hotels différents?
je pense qu'il peut réserver le meme jour une chambre mais uniquement si l'hotel est différent...cependant pour justifier j'ai un peu de mal (je pensais à dire que tant que codeH est une clé primaire alors on peut réserver uniquement dans des hotel différents mais bon...)
2/ A une date donnée, une chambre peut-elle etre réservée par plusieurs clients ?
je ne pense pas nn plus car dateR est une clé primaire et la table réservation est lié par codeC, à la table client, qui est une clé primaire dans client...justification exacte et/ou suffisante ou pas?
3/ Quelles sont les chambres de l'hoytel ALAIN disposant de tv qui sont occupés le 09/06/08? On affichera pour chaque chambre son numéro, le nombre de personne ainsi que le prix
Ma solution :
SELECT numCham,nbPersonne,prix
FROM Hotel h , Chambre ch , réservation r
WHERE h.codeH=ch.codeH
AND ch.codeCham=r.codeCham
AND dateR='06/06/08'
AND nomH='ALAIN'
AND prix='avec'
;
4/ Quels sont les hotels de pau (code et nom) qui ont des chambres libres le 09/06/08 ?
SELECT codeH , nomH
FROM Hotel h , Chambre ch
WHERE h.codeH=ch.codeH
MINUS
(SELECT codeH , nomH
FROM Hotel h , Cham ch , reservation r , client cl
WHERE h.codeH=ch.codeH
AND ch.codeCham=r.codeCham
AND r.codeC=cl.codeC
AND dateR='09/06/08'
);
5/Dans quel hotel trouve-t-on la chambre la plus chère ?
SELECT nomH
FROM hotel h
WHERE h.codeH=ch.codeH
AND prix = (SELECT MAX(prix)
FROM Chambre
);
Pas sur du tout !!!
6/ Donnez le nom et l'adresse des personnes qui ont réservé un hotel le 09/07/08 dans leur ville de résidence
SELECT nomC , adresse
FROM Client cl , Hotel h , Réservation r , Chambre ch
WHERE h.codeH=ch.codeH
AND ch.codeCham=r.codeCham
AND r.codeC=cl.codeC
AND dateR='09/07/08'
AND villeC=villeH
;
7/Quel est le prix moyen des chambres dans chaque hotel ayant 3 étoiles ? Afficher le nom , la ville, et le prix moyen pour chaque hotel
SELECT nomH , villeH, AVG(prix)
FROM Hotel h , Chambre ch
WHERE nbetoile='3'
AND h.codeH=ch.codeH
;
8/ Quelles sont les réservations dans la ville de Paris et dans la ville de Pau pour le mois de Juin ? Pour chaque réservation, on donnera le nom et l'adresse du client
SELECT nomC , adresse
FROM Hotel h , Chambre ch , réservation r , Client cl
WHERE h.codeH=ch.codeH
AND ch.codeCham=r.codeCham
AND r.codeC=cl.codeC
AND villeH='Paris'
AND dateR between '31/05/08' and '01/07/08'
UNION
SELECT nomC , adresse
FROM Hotel h , Chambre ch , réservation r , Client cl
WHERE h.codeH=ch.codeH
AND ch.codeCham=r.codeCham
AND r.codeC=cl.codeC
AND villeH='Pau'
AND dateR between '31/05/08' and '01/07/08'
;
Merci d'avoir pris le tps de me répondre
Partager