IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Quelques questions concernant un exo de BD


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Quelques questions concernant un exo de BD
    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

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 263
    Points
    34 263
    Par défaut
    salut
    Citation Envoyé par dudule65 Voir le message
    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...)
    la table qui t'intéresse ici est réservation, le couple CodeCham/dateR signifie qu'une chambre ne peut être réservée par plusieurs personnes à la même date
    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?
    même remarque que pour la 1.
    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 TV='avec'
    ;
    attention, selon le sgbd dans lequel tu te trouves, au format de la date.
    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'
    );
    ca me semble correct, mais peut-être aurait-il été plus simple d(utiliser NOT IN...
    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 !!!
    d'où sors-tu ton ch ? il faut l'ajouter à la clause from
    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
    ;
    ca me semble bon.
    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
    ;
    attention, si ton champ nbetoile est un numérique, il faut enlever les apostrophes.
    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'
    ;
    plus simple aurait été de passer par un simple " OR villeH='Pau'
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    re !!
    pour la 5/ j'ai juste oublié de rajouter dans FROM, chambre ch
    Sinon à part ce pti oublie, la requette est-elle juste?
    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 263
    Points
    34 263
    Par défaut
    ca passe oui.

    tu n'as pas testé les requêtes de tes réponses avant alors ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Non je n'ai pas fait de test (manque de temps), mais bon en gros j'ai fait quelques trucs de juste donc ca me rassure
    je te remercie de m'avoir répondu ami de forum
    bne aprem

Discussions similaires

  1. Quelques questions concernant le tuto Java - TP Calculatrice
    Par klgui4 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 11/04/2012, 11h36
  2. Quelques questions concernant un Userform
    Par rickgoz dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 31/10/2008, 16h51
  3. Quelques questions concernant PDCurses
    Par Electroniktor dans le forum C
    Réponses: 3
    Dernier message: 16/09/2007, 16h44
  4. quelques questions concernant g_free, g_malloc
    Par bit_o dans le forum GTK+ avec C & C++
    Réponses: 25
    Dernier message: 26/03/2007, 20h36
  5. [Kylix] Quelques questions
    Par onet dans le forum EDI
    Réponses: 4
    Dernier message: 23/11/2005, 10h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo