Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2012
    Messages : 2
    Points : 1
    Points
    1

    Par défaut Table et requêtes simples SQL

    Bonjour à tous,

    Étant débutant en la matière, j'aimerais savoir si ma table ANIMAL et mes requêtes SQL sont correctes

    Voici mon schéma de relation d'une BDD simplifiée d'un parc animalier :
    ANIMAL (id_a,nom_a, datenaiss_a, id_menu, id_endroit, race_fam, ori_fam)
    ENFANT (id_enf, nom_enf,datenaiss_enf, id_a_pere,id_a_mere)
    FAMILLE(race_fam,ori_fam)
    ENDROIT (id_endroit, type_endroit, superf_endroit,nbmaxoccupant)
    MENU (id_menu,quteviande_menu,qutelegume_menu)
    J'ai créé la base: 'CREATE DATABASE PARC'

    Et voici ma table 'ANIMAL':

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE ANIMAL
    (
      id_a        CHAR(6)     NOT NULL PRIMARY KEY
    , nom_a       VARCHAR(20) NOT NULL
    , datenaiss_a DATE(10)    NOT NULL
    , id_menu     CHAR(6)     NOT NULL REFERENCES MENU   (ID_MENU)
    , id_endroit  CHAR(6)     NOT NULL REFERENCES ENDROIT(ID_ENDROIT)
    , race_fam    VARCHAR 20) NOT NULL
    , race_fam    VARCHAR(30) NOT NULL REFERENCES FAMILLE(RACE_FAM)
    , ori_fam     VARCHAR(30) NOT NULL REFERENCES FAMILLE(ORI_FAM)
    );
    Je pense qu'elle est fausse car je n'ai pas intégré les clés étrangères id_e,race_fam et origine_fam mais je ne sais pas où inscrire "FOREIGN KEY" vu que j'ai déjà 'REFERENCES"

    Et voici donc mes requêtes SQL:

    Liste de tous les animaux qui sont parents et le nombre d'enfants qu'ils ont
    Code :
    1
    2
    3
    SELECT nom_a
    FROM ANIMAL
    GROUP BY ENFANT
    Liste des animaux dont les deux parents sont connus
    Code :
    1
    2
    SELECT id_a_pere,id_a_mere
    FROM ENFANT
    Moyenne de la qté de viande servie dans le menu des singes
    Code :
    1
    2
    3
    SELECT AVG(quteviande_menu)
    FROM MENU
    WHERE FAMILLE='singe'

    Merci par avance pour votre aide
    Bonne journée
    Gap

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 069
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 13 069
    Points : 29 231
    Points
    29 231

    Par défaut

    Une petite erreur s'est glissée dans la définition de votre table (ligne bégayée...)

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE ANIMAL
    (
      id_a        CHAR(6)     NOT NULL PRIMARY KEY
    , nom_a       VARCHAR(20) NOT NULL
    , datenaiss_a DATE(10)    NOT NULL
    , id_menu     CHAR(6)     NOT NULL REFERENCES MENU   (ID_MENU)
    , id_endroit  CHAR(6)     NOT NULL REFERENCES ENDROIT(ID_ENDROIT)
    , race_fam    VARCHAR(30) NOT NULL REFERENCES FAMILLE(RACE_FAM)
    , ori_fam     VARCHAR(30) NOT NULL REFERENCES FAMILLE(ORI_FAM)
    );
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 069
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 13 069
    Points : 29 231
    Points
    29 231

    Par défaut

    Citation Envoyé par gap34 Voir le message

    Liste de tous les animaux qui sont parents et le nombre d'enfants qu'ils ont
    Code :
    1
    2
    3
    SELECT nom_a
    FROM ANIMAL
    GROUP BY ENFANT
    La requête est fausse : GROUP BY ne doit s'employer que si vous avez des agrégats (SUM, COUNT...)
    Il faut en sus faire une joinnture pour atteindre la table ENFANT...

    Liste des animaux dont les deux parents sont connus
    Code :
    1
    2
    SELECT id_a_pere,id_a_mere
    FROM ENFANT
    Il faut faire une double jointure

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  4. #4
    Modérateur
    Avatar de CinePhil
    Homme Profil pro Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 713
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 13 713
    Points : 25 575
    Points
    25 575

    Par défaut

    ANIMAL (id_a,nom_a, datenaiss_a, id_menu, id_endroit, race_fam, ori_fam)FAMILLE(race_fam,ori_fam)
    Il devrait y avoir une clé étrangère référençant l'identifiant de la famille dans la table ANIMAL et un identifiant dans la table FAMILLE.

    Citation Envoyé par gap34
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE ANIMAL
    (
      id_a        CHAR(6)     NOT NULL PRIMARY KEY
    , nom_a       VARCHAR(20) NOT NULL
    , datenaiss_a DATE(10)    NOT NULL
    , id_menu     CHAR(6)     NOT NULL REFERENCES MENU   (ID_MENU)
    , id_endroit  CHAR(6)     NOT NULL REFERENCES ENDROIT(ID_ENDROIT)
    , race_fam    VARCHAR 20) NOT NULL
    , race_fam    VARCHAR(30) NOT NULL REFERENCES FAMILLE(RACE_FAM)
    , ori_fam     VARCHAR(30) NOT NULL REFERENCES FAMILLE(ORI_FAM)
    );
    Mauvais choix du type pour la clé primaire.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •