SQL 06052015 (1)

8
_ Jointures Livraisons Arbre généalogique 2.4.1 Livraisons Reprenons pour ce tp la base de données de A.4 . Exercice 1 Afficher tous les noms des produits dont le numéro a une occurrence dans la table PROPOSER. SELECT distinct nomprod FROM produit, proposer WHERE produit.numprod = proposer.numprod; +-----------------+ | nomprod | +-----------------+ | Roue de secours | | Poupee Batman | | Cotons tiges | +-----------------+ Exercice 2 Afficher tous les noms des fournisseurs dont le numéro a une occurrence dans la table PROPOSER. SELECT distinct nomfou FROM fournisseur f, proposer p WHERE f.numfou = p.numfou; +--------+ | nomfou | +--------+ | f1 |

description

sql

Transcript of SQL 06052015 (1)

_ Jointures Livraisons Arbre gnalogique2.4.1LivraisonsReprenons pour ce tp la base de donnes deA.4.Exercice 1Afficher tous les noms des produits dont le numro a une occurrence dans la tablePROPOSER.SELECT distinct nomprod FROM produit, proposer WHERE produit.numprod = proposer.numprod;

+-----------------+| nomprod |+-----------------+| Roue de secours || Poupee Batman || Cotons tiges |+-----------------+

Exercice 2Afficher tous les noms des fournisseurs dont le numro a une occurrence dans la tablePROPOSER.SELECT distinct nomfou FROM fournisseur f, proposer p WHERE f.numfou = p.numfou;+--------+| nomfou |+--------+| f1 || f2 || f3 |+--------+

Exercice 3Afficher les noms des fournisseurs avec pour chaque fournisseur la liste des produits proposs.ELECT nomfou, nomprod FROM fournisseur f, produit p, proposer prWHERE f.numfou = pr.numfou AND pr.numprod = p.numprod;+--------+-----------------+| nomfou | nomprod |+--------+-----------------+| f1 | Roue de secours || f1 | Poupee Batman || f2 | Poupee Batman || f3 | Cotons tiges |+--------+-----------------+

Exercice 4Afficher les noms des fournisseurs proposant des Poupe Batman par ordre de prix croissant.SELECT nomfou, prix FROM fournisseur f, produit p, proposer prWHERE f.numfou = pr.numfou AND pr.numprod = p.numprod AND nomProd = 'Poupe Batman'ORDER BY prix;Exercice 5Afficher les dates des livraisons effectues par le fournisseur f1;-- Exercice 5

SELECT dateli FROM livraison l, fournisseur fWHERE l.numfou = f.numfou AND f.nomFou = 'f1';

Exercice 6Afficher les noms de tous les produits dj livrs par le fournisseur f3;-- Exercice 6

SELECT nomprod FROM fournisseur f, produit p, detaillivraison d, livraison lWHERE nomfou = 'f3'AND f.numfou = l.numfouAND l.numfou = d.numfouAND l.numli = d.numliAND d.numprod = p.numprodAND dateli < sysdate;Exercice 7Afficher toutes les lignes de la tableLIVRAISONcorrespondant des livraisons dans lesquelles figure le produit Poupe Batman.

-- Exercice 7

SELECT l.numfou, l.numli, dateli FROM produit p, livraison l, detaillivraison dWHERE p.numprod = d.numprodAND l.numfou = d.numfouAND l.numli = d.numliAND p.nomprod = 'Poupe Batman';

2.4.2Arbre gnalogiquePour les exercices suivants, nous travaillerons sur les donnes deA.5. Dans les questions o il vous est demand de formuler des requtes retournant plusieurs personnes, il faut quil y ait une ligne par personne.Exercice 8Afficher les noms et les prnoms des enfants de Robert Baratheon.+-----------+----------+| nom | prenom |+-----------+----------+| NULL | Gendry || Baratheon | Joffrey || Baratheon | Tommen || Baratheon | Myrcella |+-----------+----------+

Exercice 9Afficher les noms et prnoms des parents de Stannis Baratheon+-----------+---------+| nom | prenom |+-----------+---------+| Estermont | Cassana || Baratheon | Steffon |+-----------+---------+

Exercice 10Afficher les noms et prnoms des enfants de Robert Baratheon et Cersei Lannister.Exercice 11Afficher les noms et prnoms des frres de Renly Baratheon.Exercice 12Afficher les noms et prnoms des cousins de Shireen Baratheon du cot de son pre.Exercice 13Afficher les nom et prnom du demi-frre (du cot de leur pre) des enfants de Cersei Lannister.Exercice 14Afficher les nom et prnom de la mre des enfants de Tywin Lannister.Exercice 15Afficher les noms et prnoms des neveux lgitimes de Stannis Baratheon.Exercice 16Afficher les noms et prnoms des mres des petits-enfants de Cassana Estermont.Exercice 17Afficher les nom et prnom des parents et grand-parents de Tommen Baratheon.+-----------+---------+| nom | prenom |+-----------+---------+| Estermont | Cassana || Baratheon | Steffon || Lannister | Joanna || Lannister | Tywin |+-----------+---------+

Noubliez pas : une ligne par personne.

-- Exercice 8

SELECT enfant.nom, enfant.prenomFROM personne enfant, personne robertWHERE enfant.pere = robert.numpersAND robert.nom = 'Baratheon' AND robert.prenom = 'Robert';

-- Exercice 9

SELECT parent.nom, parent.prenomFROM personne stannis, personne parentWHERE (stannis.pere = parent.numpers OR stannis.mere = parent.numpers)AND stannis.nom = 'Baratheon' AND stannis.prenom = 'Stannis';

-- Exercice 10

SELECT enfant.nom, enfant.prenomFROM personne enfant, personne robert, personne cerseiWHERE enfant.pere = robert.numpersAND enfant.mere = cersei.numpersAND robert.nom = 'Baratheon' AND robert.prenom = 'Robert'AND cersei.nom = 'Lannister' AND cersei.prenom = 'Cersei';

-- Exercice 11

SELECT frere.nom, frere.prenomFROM personne frere, personne renlyWHERE frere.pere = renly.pere AND frere.mere = renly.mere AND renly.nom = 'Baratheon' AND renly.prenom = 'Renly'AND frere.numpers renly.numpers;

-- Exercice 12

SELECT cousin.nom, cousin.prenomFROM personne cousin, personne oncle, personne pere, personne shireenWHERE shireen.nom = 'Baratheon' AND shireen.prenom = 'Shireen'AND shireen.pere = pere.numpersAND pere.pere = oncle.pereAND pere.mere = oncle.mere AND pere.numpers oncle.numpersAND oncle.numpers IN (cousin.pere, cousin.mere); /* Attention, sur certaines versions de mysql, les NULL font bugger le moteur de requetes. */

-- Exercice 13

SELECT DISTINCT demifrere.nom, demifrere.prenomFROM personne demifrere, personne cersei, personne enfantWHERE cersei.nom = 'Lannister' AND cersei.prenom = 'Cersei'AND enfant.mere = cersei.numpersAND enfant.pere = demifrere.pereAND enfant.mere demifrere.mere;

-- Exercice 14

SELECT DISTINCT mere.nom, mere.prenomFROM personne tywin, personne mere, personne enfantWHERE tywin.nom = 'Lannister' AND tywin.prenom = 'Tywin'AND enfant.mere = mere.numpersAND enfant.pere = tywin.numpers;

-- Exercice 15

SELECT neveu.nom, neveu.prenomFROM personne neveu, personne stannis, personne frereWHERE stannis.prenom = 'Stannis' AND stannis.nom = 'Baratheon'AND frere.pere = stannis.pereAND frere.mere = stannis.mereAND frere.numpers stannis.numpersAND frere.numpers IN (neveu.pere, neveu.mere)AND neveu.pere IS NOT NULLAND neveu.mere IS NOT NULL; /* Attention, sur certaines versions de mysql, les NULL font bugger le moteur de requetes. */

-- Exercice 16

SELECT DISTINCT bru.nom, bru.prenomFROM personne petitenfant, personne enfant, personne cassana, personne bruWHERE enfant.mere = cassana.numpersAND enfant.numpers IN (petitenfant.pere, petitenfant.mere)AND bru.numpers = petitenfant.mereAND cassana.nom = 'Estermont' AND cassana.prenom = 'Cassana';

-- Exercice 17

SELECT DISTINCT grandparent.nom, grandparent.prenomFROM personne tommen, personne parent, personne grandparentWHERE tommen.nom = 'Baratheon' AND tommen.prenom = 'Tommen'AND grandparent.numpers IN (parent.pere, parent.mere)AND parent.numpers IN (tommen.pere, tommen.mere);

AgrgationExercice 1Donner le nombre de fournisseurs.SELECT COUNT(*) FROM FOURNISSEUR;Exercice 2Donner le nombre de fournisseurs ayant dj effectu une livraison.SELECT COUNT(DISTINCT NUMFOU) FROM LIVRAISON;Exercice 3Quel est le prix du produit propos au prix le plus lev par f1 ?SELECT MAX(prix) AS PRIX_MAX FROM PROPOSER PR, FOURNISSEUR F WHERE F.numfou = PR.numfou AND nomfou = 'f1';