CREATE TABLE Client (
Codecl NUMBER PRIMARY KEY,
Nom VARCHAR2(50),
Ville VARCHAR2(50)
);
CREATE TABLE Commande (
NumCom NUMBER PRIMARY KEY,
DateCom DATE,
Codecl NUMBER,
FOREIGN KEY (Codecl) REFERENCES Client(Codecl)
);
CREATE TABLE Article (
CodeArt NUMBER PRIMARY KEY,
Desi VARCHAR2(50),
PU NUMBER,
Qdisp NUMBER
);
CREATE TABLE Detai (
NumComligne NUMBER PRIMARY KEY,
NumCom NUMBER,
CodeArt NUMBER,
Qte NUMBER,
FOREIGN KEY (NumCom) REFERENCES Commande(NumCom),
FOREIGN KEY (CodeArt) REFERENCES Article(CodeArt)
);
-- Exemple d'insertion de données dans la table Client
INSERT INTO Client (Codecl, Nom, Ville) VALUES (1, 'Client 1', 'Paris');
INSERT INTO Client (Codecl, Nom, Ville) VALUES (2, 'Client 2', 'Lyon');
-- Exemple d'insertion de données dans la table Commande
INSERT INTO Commande (NumCom, DateCom, Codecl) VALUES (101, TO_DATE('2023-10-01',
'YYYY-MM-DD'), 1);
INSERT INTO Commande (NumCom, DateCom, Codecl) VALUES (102, TO_DATE('2023-10-05',
'YYYY-MM-DD'), 2);
-- Exemple d'insertion de données dans la table Article
INSERT INTO Article (CodeArt, Desi, PU, Qdisp) VALUES (201, 'Article 1', 10.99,
50);
INSERT INTO Article (CodeArt, Desi, PU, Qdisp) VALUES (202, 'Article 2', 15.75,
30);
-- Exemple d'insertion de données dans la table Detai
INSERT INTO Detai (NumComligne, NumCom, CodeArt, Qte) VALUES (1, 101, 201, 2);
INSERT INTO Detai (NumComligne, NumCom, CodeArt, Qte) VALUES (2, 101, 202, 3);
INSERT INTO Detai (NumComligne, NumCom, CodeArt, Qte) VALUES (3, 102, 201, 1);
1)
declare
numC number :=2;
nomC varchar(30);
nb number :=0 ;
begin
select cl.nom , count(*) into nomC ,nb from Commande c , Client cl
where c.codecl = cl.codecl and cl.codecl=numC group by cl.nom;
dbms_output.put_line('le client N° ' || numC || ' le nom est ' || nomC || ' a
'||nb || ' commandes');
end ;
2)
declare
nb number:0;
ville Client.ville%type :="Paris";
datec Commande.DateCom% := to_date('2023-10-01', 'YYYY-MM-DD');
nb number :=0;
begin
select count(*) into nb from Client cl , Commande c
where cl.Ville=ville and cl.Codecl=c.Codecl and cl.DateCom =datec;
dbms_output.put_line('pour la ville : ' || ville || ' est la date de commande '
|| datec || ' il y a '||nb || ' commandes');
end;