Exercice Langage SQL
Exercice Langage SQL
Exercice Langage SQL
<<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 :
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.
e) Les noArticles commands au moins une fois par le Client #10 aprs le 01/06/2000.
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.
m) Les noArticles qui apparaissent dans toutes les Commandes du Client #10.
w) Les noArticle avec la quantit totale commande depuis le 05/07/2000 dans le cas o cette quantit
dpasse 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.