Exercice Langage SQL

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

Exercices du chapitre 4

Reprsentation UML du schma VentesPleinDeFoin :

<<Table>>
<<Table>>
Article
Client
{Cl primaire : noArticle}
{Cl primaire : noClient}
noArticle : INTEGER
noClient : INTEGER
description : VARCHAR
nomClient : VARCHAR
prixUnitaire : DECIMAL
noTlphone : VARCHAR
quantitEnStock : INTEGER

<<Table>> <<Table>>
Commande LigneCommande
{Cl primaire : noCommande} {Cl primaire : noCommande, noArticle}
noCommande : INTEGER noCommande : INTEGER
dateCommande : DATE noArticle : INTEGER
noClient : INTEGER quantit : INTEGER

<<Table>>
<<Table>> DtailLivraison
Livraison {Cl primaire : noLivraison, noCommande, noArticle}
{Cl primaire : noLivraison} noLivraison : INTEGER
noLivraison : INTEGER noCommande : INTEGER
dateLivraison : DATE noArticle : INTEGER
quantitLivre : INTEGER
Schma SQL VentesPleinDeFoin :
CREATE TABLE Client
(noClient INTEGER NOT NULL,
nomClient VARCHAR(20) NOT NULL,
noTlphone VARCHAR(15) NOT NULL,
PRIMARY KEY (noClient)
)
CREATE TABLE Article
(noArticle INTEGER NOT NULL,
description VARCHAR(20),
prixUnitaire DECIMAL(10,2) NOT NULL,
quantitEnStock INTEGER DEFAULT 0 NOT NULL
CHECK (quantitEnStock >= 0),
PRIMARY KEY (noArticle)
)
CREATE TABLE Commande
(noCommande INTEGER NOT NULL,
dateCommande DATE NOT NULL,
noClient INTEGER NOT NULL,
PRIMARY KEY (noCommande),
FOREIGN KEY (noClient) REFERENCES Client
)
CREATE TABLE LigneCommande
(noCommande INTEGER NOT NULL,
noArticle INTEGER NOT NULL,
quantit INTEGER NOT NULL
CHECK (quantit > 0),
PRIMARY KEY (noCommande, noArticle),
FOREIGN KEY (noCommande) REFERENCES Commande,
FOREIGN KEY (noArticle) REFERENCES Article
)
CREATE TABLE Livraison
(noLivraison INTEGER NOT NULL,
dateLivraison DATE NOT NULL,
PRIMARY KEY (noLivraison)
)
CREATE TABLE DtailLivraison
(noLivraison INTEGER NOT NULL,
noCommande INTEGER NOT NULL,
noArticle INTEGER NOT NULL,
quantitLivre INTEGER NOT NULL
CHECK (quantitLivre > 0),
PRIMARY KEY (noLivraison, noCommande, noArticle),
FOREIGN KEY (noLivraison) REFERENCES Livraison,
FOREIGN KEY (noCommande, noArticle) REFERENCES LigneCommande
)
1) Formulez en SQL les requtes suivantes sur le schma de la BD de la ppinire PleinDeFoin (N.B. a)
m) sont identiques l'exercice 2 sur l'algbre relationnelle). Cherchez les formulations quivalentes :

a) Les Clients dont le noTlphone = (999)999-9999

b) Le noCommande et la dateCommande des Commandes du Client #10 dont le noCommande est suprieur
5.

c) Les noArticle et description des Articles dont le prixUnitaire est entre $10 et $20.

d) Le noClient, noTlphone du Client et noCommande pour les Commandes faites le 4/06/2000.

e) Les noArticles commands au moins une fois par le Client #10 aprs le 01/06/2000.

f) Les noLivraisons correspondant aux Commandes faites par le Client #10.

g) Les noCommandes des Commandes qui ont t places la mme date que la Commande #2.

h) Les noLivraison faites la mme date qu'une des Commandes correspondant la Livraison.

i) La liste des noCommande avec les noLivraisons associes incluant les noCommandes sans livraison.

j) Les noClient, nomClient des Clients qui n'ont pas plac de Commande au mois de mars de l'anne 2000.

k) Les noCommandes qui ne contiennent pas l'Article # 10.

l) Les noArticle qui apparaissent dans toutes les Commandes.

m) Les noArticles qui apparaissent dans toutes les Commandes du Client #10.

n) Les Articles dont la description dbute par la lettre C .

o) Le Clients dont le noTlphone n'est pas NULL.

p) Les Articles dont le prix est suprieur la moyenne.

q) Le montant total de la Commande #1 avant et aprs la taxe de 15%.

r) Le montant total de la Livraison #1 avant et aprs la taxe de 15%

s) La quantit commande et quantit en attente pour chaque LigneCommande.

t) La quantit commande et quantit en attente pour chaque LigneCommande dont la quantit en


attente est suprieure 0.

u) L'article de prix minimum.


v) Les noLivraison des Livraisons effectues le 4/06/2000 qui contiennent au moins deux
DtailLivraison. Le rsultat doit tre tri par le noLivraison.

w) Les noArticle avec la quantit totale commande depuis le 05/07/2000 dans le cas o cette quantit
dpasse 10.

x) Supprimer les Articles qui n'ont jamais t commands.

y) Augmenter la quantit commande de 2 units pour la Commande #1 et l'Article #10.

z) Supprimer le Client # 1 avec toutes les donnes qui lui sont associes (Commandes, Livraisons, etc.).

2) Exercices supplmentaires :

a) Le nombre d'Articles prix modique dont le prixUnitaire est infrieur $15.00 et le nombre
d'Articles dispendieux dont le prixUnitaire est suprieur $25.00 (dans le mme SELECT).

b) Le noClient, son nom, le numro de tlphone du client, le montant total command pour les
articles dispendieux dont le prix unitaire est suprieur $20, et le montant total command pour
les articles prix modiques dont le prix unitaire est infrieur $15 pour les clients qui ont
command un montant moins lev d'articles dispendieux que d'articles prix modique.

Vous aimerez peut-être aussi