Exercice

Momor -  
diablo13800 Messages postés 3469 Date d'inscription   Statut Membre Dernière intervention   -
Soit la base de données, décrite par les relations suivantes :

FOURNISSEURS (NF, NOMF, VILLEF)
CLIENTS (NC, NOMC, VILLEC)
PIECES (NP, NOMP, COULEUR, POIDS, VILLE)
PROJETS (NPR, NOMPR, VILLE)
LIVRAISONS (NF, NP, NPR, DATEL, QTEL)
ACHATS (NC, NP, DATEA, QTEA)
Résoudre les requêtes suivantes en SQL :

1. Donner le numéro du fournisseur, le nom et la couleur de chaque pièce livrée par ce fournisseur,
2. Quels sont les fournisseurs qui habitent à Tunis, ayant un numéro supérieur à 237,
3. Donner la liste des numéros des fournisseurs n’ayant pas fait de livraison depuis 2003,
4. Donner les noms des pièces dont le poids est supérieur à trois Kilos, de couleur Noire ou Jaune,
5. Donner les noms des fournisseurs qui livrent une quantité de la pièce numéro P5 égale à 45 unités,
6. Donner les numéros des fournisseurs qui fournissent au moins toutes les pièces fournies par le fournisseur “F8”,
7. Donner le triplet (NF, NC, NP), sachant que NF livre la pièce NP et NC achetant cette pièce NP, et que ce fournisseur et ce client habitent tous les deux la même ville,
8. Quels sont les fournisseurs qui livrent au moins une pièce dans la ville là où ils habitent,
9. Donner les numéros des fournisseurs qui fournissent au moins une pièce fournie par le fournisseur “F4”.

4 réponses

  1. diablo13800 Messages postés 3469 Date d'inscription   Statut Membre Dernière intervention   1 872
     
    Personne ne vous fera votre exercice à votre place comme indiqué dans le lien que je vous ai envoyé.

    Essayez de faire et seulement si vous bloqué ou pour avoir des confirmations vous pouvez poser vos questions.

    Mais faire votre exercice c'est hors de question.
    0
  2. momor
     
    Exercice n 2

    1-
    select nf, nomf
    from fournisseur
    where year(date_embauche) between 1993 and 1995
    order by nom
    2-
    SELECT fournisseur
    FROM FOURNISSEUR
    WHERE VILLEF = ‘Tunis’, nf>237;

    3-
    SELECT *
    FROM FOURNISSEURS
    WHERE date = 2003, livraison IS NULL;
    4-
    SELECT *
    FROM Piéces
    WHERE Poids>3kg, couleur(noir,jaune)
    5-
    Select *
    From Fournisseur
    Where NP = P5
    Where QTEL=45
    6-
    Select *
    From Fournisseur
    Where Fournisseur = F8

    7-
    Select *
    From Fournisseur
    Where (NF,NC,NP)
    Order by (NF,NC,NP)
    8-
    Select *
    From Fournisseur
    Where LP = 1,Ville=VilleF
    9-
    Select *
    From Fournisseur
    Where Fournisseur = F4,NP=1;
    0
  3. diablo13800 Messages postés 3469 Date d'inscription   Statut Membre Dernière intervention   1 872
     
    Bonjour,

    Bon je vais trier question par question, ce sera plus simple pour vous pour comprendre les remarques je pense.


    1. Donner le numéro du fournisseur, le nom et la couleur de chaque pièce livrée par ce fournisseur,

    select nf, nomf
    from fournisseur
    where year(date_embauche) between 1993 and 1995
    order by nom


    Je pense que vous avez vu en cours les Jointures, et la c'en ai un bon exemple.
    Vous devez faire une jointure sur la table Fournisseur, Livraison, et Pièces.
    La dans votre réponse, je sais même pas ce que fait la date_embauche, ou alors il y a confusion dans la question.
    https://sql.sh/cours/jointures

    2. Quels sont les fournisseurs qui habitent à Tunis, ayant un numéro supérieur à 237,
    SELECT fournisseur
    FROM FOURNISSEUR
    WHERE VILLEF = ‘Tunis’, nf>237;


    Vous ne pouvez pas utiliser la virgule, il faut utiliser AND ou OR. ( Suivant si vous avez besoin des deux, ou seulement un des deux pour correspondre à ce que vous voulez.)
    https://sql.sh/cours/where/and-or

    3. Donner la liste des numéros des fournisseurs n’ayant pas fait de livraison depuis 2003,
    SELECT *
    FROM FOURNISSEURS
    WHERE date = 2003, livraison IS NULL;


    Pas besoin du étoile, vous ne cherchez que le NF. Et pour ma part je passerais par une requête imbriqué. " Select ... from Table where Table.ClePrimaire not in ( select .... from AutreTable where ....) "
    https://sql.sh/cours/sous-requete

     
    4. Donner les noms des pièces dont le poids est supérieur à trois Kilos, de couleur Noire ou Jaune,
    SELECT *
    FROM Piéces
    WHERE Poids>3kg, couleur(noir,jaune)


    Idée bonne, mais reprendre ce que je dis pour la question 3 et 2. Utilisez le IN ou le OR pour la couleur.
    https://sql.sh/cours/where/in

    Essayer déjà de voir ces 4 là. Et dites moi ce que vous avez trouvé. Et si vous arrivez à vous auto corriger avec mes remarques sur les autres ce serait que bénéfique pour vous, mais si vous n'y arrivez faites le savoir.

    0