COMPTE RENDU
CREATE TABLE Competition (
CONSTRAINT pk_Competition ncomp NUMBER PRIMARY KEY,
nomcomp VARCHAR2(100) NOT NULL,
datcomp DATE NOT NULL,
prixcomp NUMBER(10, 8) NOT NULL
);
CREATE TABLE Bateau (
CONSTRAINT pk_Bateau nbat NUMBER PRIMARY KEY,
nombat VARCHAR2(100) NOT NULL,
sponsor VARCHAR2(100)
);
CREATE TABLE Courses (
CONSTRAINT pk_Courses nbat NUMBER,
ncomp NUMBER,
score NUMBER(10, 2),
lieu VARCHAR2(100),
PRIMARY KEY (nbat, ncomp),
CONSTRAINT fk_bateau FOREIGN KEY (nbat) REFERENCES Bateau(nbat) ,
CONSTRAINT fk_competition FOREIGN KEY (ncomp) REFERENCES
Competition(ncomp)
);
select ncomp from Competition C ,Courses CO where (CO.ncom=C.ncomp) and
'(CO.nbat="ville de Tunis") and (C.prixcomp>200000)
SELECT B.nbat
FROM Bateau B, Courses Co, Competition C
WHERE Co.nbat = B.nbat
AND Co.ncomp = C.ncomp
GROUP BY B.nbat
HAVING COUNT(DISTINCT Co.ncomp) = 10;
select ncomp from Competition C where (prixcomp > (select avg(prixcomp) from
Competition));
SELECT DISTINCT b.nombat
FROM Bateau b
WHERE b.nbat IN (
SELECT co.nbat
FROM Courses co
JOIN Competition c ON co.ncomp = c.ncomp
WHERE co.score = 1 AND c.datcomp = '1999'
)
AND b.nbat IN (
SELECT co.nbat
FROM Courses co
JOIN Competition c ON co.ncomp = c.ncomp
WHERE co.score = 3 AND c.datcomp = '1998'
);
Alter table Courses Add constraint AB check(upper(LIEU) in
('TUNIS','SOUSSE','SFAX','GABES','MARSA') );