Partage
  • Partager sur Facebook
  • Partager sur Twitter

exercice du chap 8 du cours administrez vos bases

Sujet résolu
    4 novembre 2019 à 16:00:25

    bonjour, 

    je suis attentivement le cours ADMINISTREZ VOS BASES DE DONNEES; je suis au niveau du chapitre 8 qui porte sur SELECTIONNEZ DES DONNEES.

    au niveau du 1er exercice qui est donné, je me rend compte que la solution ne marche pas il y a la 3ème ligne qui ne correspond pas aux critères comme vous le remarquerez ci-dessous avec l'aperçu de MYSQL et  je ne comprend pas pourquoi.

    tout ce passe comme-ci MYSQL ne tenait pas en compte le AND de la dernière parenthèse de l'instruction.

    MERCI DE M'AIDER A COMPRENDRE!

    ci-dessous avec l'aperçu de MYSQL

    mysql> SELECT * FROM Animal

        -> WHERE date_naissance >'2009-12-31'

        -> OR (espece='chat'

        -> AND (sexe='M'

        -> OR (sexe='F' AND date_naissance < '2007-06-01')

        -> ));

    +----+--------+------+---------------------+----------------+----------------------------------+

    | id | espece | sexe | date_naissance      | nom            | commentaires                     |

    +----+--------+------+---------------------+----------------+----------------------------------+

    |  1 | chien  | M    | 2010-04-05 13:43:00 | Rox            | Mordille beaucoup                |

    |  2 | chat   | NULL | 2010-03-24 02:23:00 | Roucky         | NULL                             |

    |  3 | chat   | F    | 2010-09-13 15:02:00 | Schtroumpfette | NULL                             |

    |  5 | chat   | NULL | 2010-10-03 16:44:00 | Choupi         | Ne sans oreille gauche           |

    |  8 | chat   | M    | 2008-09-11 15:38:00 | Bagherra       | NULL                             |

    |  9 | tortue | NULL | 2010-08-23 05:18:00 | NULL           | NULL                             |

    | 10 | chien  | M    | 2010-07-21 15:41:00 | Bobo           | NULL                             |

    | 29 | chat   | M    | 2009-05-14 06:30:00 | Fiero          | NULL                             |

    | 30 | chat   | M    | 2007-03-12 12:05:00 | Zonko          | NULL                             |

    | 31 | chat   | M    | 2008-02-20 15:45:00 | Filou          | NULL                             |

    | 32 | chat   | M    | 2007-03-12 12:07:00 | Farceur        | NULL                             |

    | 33 | chat   | M    | 2006-05-19 16:17:00 | Caribou        | NULL                             |

    | 34 | chat   | M    | 2008-04-20 03:22:00 | Capou          | NULL                             |

    | 35 | chat   | M    | 2006-05-19 16:56:00 | Raccou         | Pas de queue depuis la naissance |

    +----+--------+------+---------------------+----------------+----------------------------------+

    14 rows in set (0.00 sec)

    • Partager sur Facebook
    • Partager sur Twitter
      4 novembre 2019 à 17:20:58

      Bonjour,

      Merci d'utiliser la mise en forme de code (à l'aide du bouton </> de l'éditeur de message) ;)

      Si je réindente ta requête cela donne :

      SELECT *
      FROM Animal
      WHERE
      	date_naissance >'2009-12-31'
      	OR (
      		espece='chat'
      		AND (
      			sexe='M'
      			OR (
      				sexe='F'
      				AND date_naissance < '2007-06-01'
      			)
      		)
      	)

      Si je la traduis en français : je veux tous les animaux dont la date de naissance est supérieure au 31 décembre 2009, ou les chats mâles, ou les chats femelles nés avant le 1er juin 2007.

      Si l'on considère l'énoncé : https://openclassrooms.com/fr/courses/1959476-administrez-vos-bases-de-donnees-avec-mysql/1961564-selectionnez-des-donnees#/id/r-1978850

      Schtroumpfette est née après le 31 décembre 2009 ... donc elle est sélectionnée ... pas de problème ...

      -
      Edité par Benzouye 4 novembre 2019 à 17:21:39

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        4 novembre 2019 à 17:49:17

        Salut et merci pour </>,

        je ne suis pas d'accord et peut-être je me trompe,

        "Schtroumpfette" est une femelle et n'est pas née avant le 1er juin 2007 mais plutôt après comme la precise la ligne 11 de l'instruction.

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        SELECT *
        FROM Animal
        WHERE
        date_naissance >'2009-12-31'
        OR (
        espece='chat'
        AND (
        sexe='M'
        OR (
        sexe='F'
        AND date_naissance < '2007-06-01'
        )
        )
        )
        • Partager sur Facebook
        • Partager sur Twitter
          4 novembre 2019 à 18:19:51

          emmataks a écrit:

          je ne suis pas d'accord et peut-être je me trompe

          Oui hélas ...

          l'énoncé de l'exercice :

          Je cherche :

          • les animaux nés après 2009 ;
          • les chats mâles et femelles nées avant juin 2007.

          On cherche TOUS les animaux nés après 2009 OU les chats mâles OU les chats femelles avant juin 2007 ...

          Schtroumpfette faisant partie des animaux en général avant d'être une chatte, elle rentre dans la première condition, même si elle ne respecte pas la condition de date sur les chats femelle ... c'est un OU ...

          Il n'y a pas d'équivoque dans l'énoncé ...

          -
          Edité par Benzouye 4 novembre 2019 à 18:21:18

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            4 novembre 2019 à 19:51:34

            Benzouye a écrit:

            emmataks a écrit:

            je ne suis pas d'accord et peut-être je me trompe

            Oui hélas ...

            l'énoncé de l'exercice :

            Je cherche :

            • les animaux nés après 2009 ;
            • les chats mâles et femelles nées avant juin 2007.

            On cherche TOUS les animaux nés après 2009 OU les chats mâles OU les chats femelles avant juin 2007 ...

            Schtroumpfette faisant partie des animaux en général avant d'être une chatte, elle rentre dans la première condition, même si elle ne respecte pas la condition de date sur les chats femelle ... c'est un OU ...

            Il n'y a pas d'équivoque dans l'énoncé ...

            -
            Edité par Benzouye il y a environ 1 heure


            oui oui oui c'est très clair. je ne tenais pas en compte la première proposition.

            Merci beaucoup

            • Partager sur Facebook
            • Partager sur Twitter

            exercice du chap 8 du cours administrez vos bases

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown