Академический Документы
Профессиональный Документы
Культура Документы
Livraisons
Arbre gnalogique
2.4.1 Livraisons
Reprenons pour ce tp la base de donnes de A.4.
Exercice 1
Afficher tous les noms des produits dont le numro 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 numro a une occurrence dans la
table PROPOSER.
SELECT distinct nomfou
FROM fournisseur f, proposer p
WHERE f.numfou = p.numfou;
+--------+
| nomfou |
+--------+
| f1
| f2
| f3
+--------+
Exercice 3
Afficher les noms des fournisseurs avec pour chaque fournisseur la liste des produits
proposs.
ELECT nomfou, nomprod
FROM fournisseur f, produit p, proposer pr
WHERE 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 4
Afficher les noms des fournisseurs proposant des Poupe Batman par ordre de prix
croissant.
SELECT nomfou, prix
FROM fournisseur f, produit p, proposer pr
WHERE f.numfou = pr.numfou
AND pr.numprod = p.numprod
AND nomProd = 'Poupe Batman'
ORDER BY prix;
Exercice 5
Exercice 6
Afficher les noms de tous les produits dj livrs par le fournisseur f3;
-- Exercice 6
SELECT nomprod
FROM fournisseur f, produit p, detaillivraison d, livraison l
Exercice 7
| prenom
+-----------+----------+
| NULL
| Gendry
| Baratheon | Joffrey
| Baratheon | Tommen
| Baratheon | Myrcella |
+-----------+----------+
Exercice 9
| nom
| prenom
+-----------+---------+
| Estermont | Cassana |
| Baratheon | Steffon |
+-----------+---------+
Exercice 10
Afficher les noms et prnoms des enfants de Robert Baratheon et Cersei Lannister.
Exercice 11
Afficher les noms et prnoms des cousins de Shireen Baratheon du cot de son pre.
Exercice 13
Afficher les nom et prnom du demi-frre (du cot de leur pre) des enfants de
Cersei Lannister.
Exercice 14
Afficher les noms et prnoms des mres des petits-enfants de Cassana Estermont.
Exercice 17
| prenom
+-----------+---------+
| Estermont | Cassana |
| Baratheon | Steffon |
| Lannister | Joanna
| Lannister | Tywin
+-----------+---------+
-- Exercice 8
SELECT enfant.nom, enfant.prenom
FROM personne enfant, personne robert
WHERE enfant.pere = robert.numpers
AND robert.nom = 'Baratheon' AND robert.prenom = 'Robert';
-- Exercice 9
SELECT parent.nom, parent.prenom
FROM personne stannis, personne parent
WHERE (stannis.pere = parent.numpers OR stannis.mere = parent.numpers)
AND stannis.nom = 'Baratheon' AND stannis.prenom = 'Stannis';
-- Exercice 10
SELECT enfant.nom, enfant.prenom
FROM personne enfant, personne robert, personne cersei
WHERE enfant.pere = robert.numpers
AND enfant.mere = cersei.numpers
AND robert.nom = 'Baratheon' AND robert.prenom = 'Robert'
AND cersei.nom = 'Lannister' AND cersei.prenom = 'Cersei';
-- Exercice 11
SELECT frere.nom, frere.prenom
FROM personne frere, personne renly
WHERE 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.prenom
FROM personne cousin, personne oncle, personne pere, personne shireen
WHERE shireen.nom = 'Baratheon' AND shireen.prenom = 'Shireen'
AND shireen.pere = pere.numpers
AND pere.pere = oncle.pere
AND pere.mere = oncle.mere
AND pere.numpers <> oncle.numpers
AND 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.prenom
FROM personne demifrere, personne cersei, personne enfant
WHERE cersei.nom = 'Lannister' AND cersei.prenom = 'Cersei'
AND enfant.mere = cersei.numpers
AND enfant.pere = demifrere.pere
AND enfant.mere <> demifrere.mere;
-- Exercice 14
SELECT DISTINCT mere.nom, mere.prenom
FROM personne tywin, personne mere, personne enfant
WHERE tywin.nom = 'Lannister' AND tywin.prenom = 'Tywin'
AND enfant.mere = mere.numpers
AND enfant.pere = tywin.numpers;
-- Exercice 15
SELECT neveu.nom, neveu.prenom
FROM personne neveu, personne stannis, personne frere
WHERE stannis.prenom = 'Stannis' AND stannis.nom = 'Baratheon'
AND frere.pere = stannis.pere
AND frere.mere = stannis.mere
AND frere.numpers <> stannis.numpers
AND frere.numpers IN (neveu.pere, neveu.mere)
AND neveu.pere IS NOT NULL
AND 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.prenom
FROM personne petitenfant, personne enfant, personne cassana, personne
bru
WHERE enfant.mere = cassana.numpers
AND enfant.numpers IN (petitenfant.pere, petitenfant.mere)
AND bru.numpers = petitenfant.mere
AND cassana.nom = 'Estermont' AND cassana.prenom = 'Cassana';
-- Exercice 17
SELECT DISTINCT grandparent.nom, grandparent.prenom
FROM personne tommen, personne parent, personne grandparent
WHERE tommen.nom = 'Baratheon' AND tommen.prenom = 'Tommen'
AND grandparent.numpers IN (parent.pere, parent.mere)
AND parent.numpers IN (tommen.pere, tommen.mere);
Agrgation
Exercice 1