Académique Documents
Professionnel Documents
Culture Documents
suit:
Chambre (Num_Chambre, Prix, Nbr_Lit, Nbr_Pers, Confort, Equ)
Client (Num_Client, Nom, Prenom, Adresse)
Reservation ( Num_Client#, Num_Chambre#, Date_Arr, Date_Dep)
Table Chambre
Num_Chambre
Prix
Nbr_Lit
Nbr_Pers
Confort
Equ
10
80
01
02
WC
Non
20
100
02
02
Douche
Non
25
180
03
03
Bain
TV
...
...
...
...
...
...
Table Client
Num_Client
Nom
Prenom
Adresse
1000
Denez
Desmond
Marseille
1001
Noua
Ghislaine
Paris
...
...
...
...
Table Rservation
Num_Client
Num_Chambre
Date_Arr
Date_Dep
1000
20
09/02/2004
21/02/2004
1001
10
31/06/2005
...
...
...
...
5.
6.
7.
8.
9.
Les numros des chambres et le numro des clients ayant rserv des chambres pour le 09/02/2004.
Les numros des chambres cotant au maximum 80 Euro ou ayant un bain et volant au maximum 120 Euro.
Les Nom, Prnoms et adresses des clients dans le noms commencent par "D".
Le nombre de chambres dont le prix est entre 85 et 120 Euro.
Les noms des clients n'ayant pas fix la date de dpart.
Correction De l'exercice
1.
2.
3.
4.
5.
6.
7.
8.
9.
Les livraisons, la BD
Soit la base relationnelle de donnes PUF de sc
U(NumU, NomU, VilleU)
P(NumP, NomP, Couleur, Poids)
F(NumF, NomF, Statut, VilleF)
PUF(NumP, NumU, NumF, Quantit)
dcrivant le fait que (avec des DF videntes) :
U : une usine est dcrite par son numro NumU, son nom VilleU o elle est situe
P : un produit est dcrit par son numro NumP, son nom Nom son poids
F : un fournisseur est dcrit par son numro NumP, son nom (sous-traitant, client) et la ville VilleF o il est domicili
PUF : le produit de numro NumP a t dlivr lusine de nu le fournisseur de numro NumF dans une quantit donne
1) Ajouter un nouveau fournisseur avec les attributs de votre choix
2) Supprimer tous les produits de couleur noire et de numros compris entre 100 et 1999
3) Changer la ville du fournisseur 3 par Toulouse
4) Donnez le numro, le nom, la ville de toutes les usines
5) Donnez le numro, le nom, la ville de toutes les usines de Paris
6) Donnez les numros des fournisseurs qui approvisionnent lusine de numro 2 en produit de numro 100
7) Donnez les noms et les couleurs des produits livrs par le fournisseur de numro 2
8) Donnez les numros des fournisseurs qui approvisionnent lusine de numro 2 en un produit rouge
9) Donnez les noms des fournisseurs qui approvisionnent une usine de Paris ou de Crteil en produit rouge
10) Donnez les numros des produits livrs une usine par une fournisseur de la mme ville
5/10
11) Donnez les numros des produits livrs une usine de Paris par un fournisseur de Paris.
12) Donnez les numros des usines qui ont au moins un fournisseur qui nest pas de la mme ville
13) Donnez les numros des fournisseurs qui approvisionnent la fois des usines de numros 2 et 3
14) Donnez les numros des usines qui utilisent au moins un produit disponible chez le fournisseur de numro 3 (cest--dire un produit que le fournisseur
livre mais pas ncessairement cette usine)
15) Donnez le numro du produit le plus lger (les numros si plusieurs produits ont ce mme poids)
16) Donnez le numro des usines qui ne reoivent aucun produit rouge dun fournisseur parisien
17) Donnez les numros des fournisseurs qui fournissent au moins un produit fourni par au moins un fournisseur qui fournit au moins un produit rouge
18) Donnez tous les triplets (VilleF, NumP, VilleU) tels quun fournisseur de la premire ville VilleF approvisionne une usine de la deuxime ville VilleU avec un
produit NumP
19) Mme question que prcdemment mais sans les triplets o les deux villes sont identiques
20) Donnez les numros des produits qui sont livrs toutes les usines de Paris
21) Donnez les numros des fournisseurs qui approvisionnent toutes les usines avec un mme produit
22) Donnez les numros des usines qui achtent au fournisseur de numro 3 tous les produits quil fournit
23) Donnez les numros des usines qui sapprovisionnent uniquement chez le fournisseur de numro 3
19/10
1) INSERT INTO F VALUES (45, Alfred, Sous-traitant, Chalon)
2) DELETE P WHERE Np>=100 AND Np<=199 AND Couleur=Noire
3) UPDATE F SET Ville=Nice WHERE Nf=1
4) SELECT * FROM U
5) SELECT * FROM U WHERE Ville="Crteil"
6) SELECT Nf FROM PUF WHERE Nu=1 AND Np=1
7) SELECT DISTINCT NomP, Couleur FROM P, PUF WHERE PUF.Np=P.Np AND Nf=1 Ou bien SELECT NomP, Couleur FROM P WHERE Np IN (SELECT Np FROM
PUF WHERE NF=1)
20/10
8) SELECT DISTINCT Nf FROM PUF, P WHERE Couleur="Rouge" AND PUF.Np=P.Np AND Nu=1
Ou bien SELECT DISTINCT Nf FROM PUF WHERE Np IN (SELECT Np FROM P WHERE Couleur="Rouge") AND
Nu=1
9) SELECT NomF FROM PUF, P, F, U WHERE Couleur=Rouge AND PUF.Np=P.Np AND PUF.Nf=F.Nf AND
PUF.Nu=U.Nu AND (U.Ville IN (Paris,Crteil)
Ou bien SELECT NomF FROM F WHERE Nf IN (SELECT
Nf FROM PUF WHERE Np IN (SELECT Np FROM P
WHERE Couleur=Rouge) AND Nu IN (SELECT Nu FROM
U WHERE Ville IN (Paris, Crteil))
10) SELECT DISTINCT Np FROM PUF, F, U WHERE PUF.Nf=F.Nf
AND PUF.Nu=U.Nu AND U.Ville=F.Ville
21/10
11) SELECT DISTINCT Np FROM PUF, F, U WHERE PUF.Nf=F.Nf
AND PUF.Nu=U.Nu AND U.Ville=F.Ville AND U.Ville=Paris
Ou bien SELECT DISTINCT Np FROM PUF WHERE Nf IN
(SELECT Nf FROM F WHERE Ville=Paris) AND Nu IN
(SELECT Nu FROM U WHERE Ville=Paris)
12) SELECT DISTINCT PUF.Nu FROM PUF, F, U WHERE
PUF.Nf=F.Nf AND PUF.Nu=U.Nu AND U.Ville<>F.ville
Ou bien SELECT DISTINCT Nu FROM PUF WHERE
Nf=ANY(SELECT Nf FROM F, U WHERE PUF.Nf=F.Nf AND
PUF.Nu=U.Nu AND F.Ville<>U.Ville)
13) SELECT DISTINCT First.Nf FROM PUF First, PUF Second
WHERE First.Nf=Second.Nf AND First.Nu=1 AND Second.Nu=2
Ou bien SELECT DISTINCT Nf FROM PUF WHERE Nf IN
(SELECT Nf FROM PUF WHERE Nu=1) AND Nu=2
14) SELECT DISTINCT Nu FROM PUF WHERE Np IN (SELECT
Np FROM PUF WHERE Nf=3)
22/10
15) SELECT Np FROM P WHERE Poids IN (SELECT MIN(Poids)
FROM P)
Ou bien SELECT Np FROM P p1 WHERE NOT EXISTS
(SELECT * FROM P WHERE P1.Poids>Poids)
Exercice 2
1) Donnez la liste des employs ayant une commission (non NULL) class par commission dcroissante
2) Donnez les noms des personnes embauches depuis le 01-09-2006
La socit Gavasoft
1) SELECT Nom, Comm "Commission" FROM Emp WHERE
Comm IS NOT NULL AND Comm!=0 ORDER BY Comm
DESC
2) SELECT Nom, Embauche, N_Dept FROM Emp WHERE
Embauche > 01/10/2006
3) SELECT Nom, Embauche, N_Dept FROM Emp, Dept
WHERE Emp.N_Dept=Dept.N_Dept AND Lieu="Crteil"
4) SELECT a.Nom "Nom", Lieu FROM Emp a, Emp b WHERE
a.NumSup=b.NumSup AND b.NumSup="Gava"
5) SELECT AVG(Salaire) Moyenne des salaires FROM Emp
6) SELECT COUNT(Comm) Nb. Commissions non-Null
FROM Emp WHERE Comm IS NOT NULL
7) SELECT Nom, Fonction, Salaire FROM Emp WHERE
Salaire>(SELECT AVG(Salaire) FROM Emp)