Professional Documents
Culture Documents
TP-2 (Corrigé)
TP-2 (Corrigé)
TP-2 (Corrigé)
1°\
select CA,NOMA,DELAI from ART where delai between 7 and 14 order by delai ASC;
2°\
select upper(CA),upper(NOMA) from ART where (upper(CA) like 'B%' or CA like 'E%' or
CA like 'L%') order by CA Desc;
3°\
Methode 1
select CF from ART
where CA like 'A%'
and CF in ( select CF from ART where CA like 'L%' ) ;
Methode 2
Select CF from ART
Where CA like 'A%'
Interest
Select CF from ART
Where CA like 'L%'
4°\
A-
select CF , count (*) as s
from ART
where CF IS NOT NULL
group by CF
order by s ;
B-
select avg (prixa) as "pm" , avg (delai) as "dm"
from ART
where CA like 'M%' ;
C-
select count (CF) as "A non fabrique" , (count (CA)-count (CF)) as "A fabrique"
from ART ;
E-
select
case substr(ca,1,1)
when 'A' then 'audiovisuel'
when 'B' then 'bricolag'
when 'E' then 'electromenage'
1
when 'L' then 'loisir'
when 'M' then 'mobiler'
when 'T' then 'textile'
end as type_article ,
round(avg(prixa),3) as prix_moyeenne
from art
group by substr(ca,1,1) ;
5°\
A-
select
CA , sysdate+delai
from art
where CF is not null ;
B-
select CA , noma , prixa , round( prixa*0.85,3)
from art ;
6°\
A-
select Concat (min(DELAI),'Jours')
from ART;
2eme methode
select min(DELAI) || ' Jours'
from ART;
B-
select CA
FROM ART
where DELAI =(select MIN(DELAI) from ART);
7°\
A-
select CF , count (*)
from EMB
group by CF
having count (*) >=2 ;
B-
select CF , CE
from EMB
where CF in (select CF from EMB group by CF having count (CE) =1 ) ;
8°\
2
select case substr(ca,1,1)
when 'A' then 'audiovisuel'
when 'B' then 'bricolag'
when 'E' then 'electromenage'
when 'L' then 'loisir'
when 'M' then 'mobiler'
when 'T' then 'textile'
end as type_article
from art
having ((min(delai))>=7) and ((max(delai))<=14)
group by substr(ca,1,1);
2eme methode
select substr (CA,1,1)
from ART
group by substr (CA,1,1)
having min (DELAI) >=7 and max (DELAI) <=14
3eme methode
select distinct ( substr (CA,1,1) )
from ART
Where delai is not null
And substr (CA , 1,1) not in ( select substr (CA , 1,1) from ART where delai <7 or delai >
14 );
4eme methode
select substr (CA,1,1)
from ART
Where delai is not null
minus
select substr (CA , 1,1) from ART where delai not between 7 and 14 ;
9°\
A-
Select CA
From COND
Group by CA
Having count (CE)>=3;
B-
select count(distinct CA )
from COND
where CA in (select CA from COND group by CA having count(CE)>=3);
10°\
3
select CA,PRIXA,DELAI,NOMA from art where prixa > all (select prixa from ART Where
CF='F01');
11°\
select frs.cf , count(ce)
from frs left outer join emb on frs.cf = emb.cf
group by frs.cf
order by count(ce) desc ;
12°\
( methode avec in )
select ca , noma
from art
where ca in (select ca from cond where ce in ( select ce from emb where lower(
nome)='carton')) ;
13°\
( methode 1 )
select cf , nomf
from frs
where cf in (select cf from frs
minus
select cf from art );
( methode 2 )
select cf , nomf
from frs
where cf NOT IN (select cf from art where cf is not NULL );
(methode 3 )
select cf , nomf
from frs
where NOT exists (select * from art where frs.cf = art.cf);
(methode 4 )
4
select frs.CF , NOMF
from frs left outer join ART on frs.CF = ART.CF
where ART.CF is null ;
14°\
A-
select CE
from cond
minus
select CE
from cond
where CA like 'E%' ;
B-
select distinct CE from COND
where CE not in (select CE from COND where CA like 'E%' );
C-
select distinct C1.CE from COND C1
where NOT Exists (select * from COND C2 where CA like 'E%' and C1.CE=C2.CE );
15°\
A-
(methode 1 )
select distinct CA , INITCAP(NOMA)
from ART
where CA in (select CA from COND where CE in (select CE from EMB where CF in
(select CF from FRS where TYPF='STA' ))) ;
(methode 2)
select distinct ART.CA , INITCAP(ART.NOMA)
from ART join COND on ART.CA = COND.CA join EMB on COND.CE = EMB.CE join
FRS on EMB.CF = FRS.CF
where typf = 'STA';
B-
Select CA from COND where CE='E04'
UNION
Select CA from COND where CE='E05';
C-
select CA from COND where CE='E03'
INTERSECT
select CA from COND where CE='E06' ;
Mathode 2
select C1.CA from COND C1 join COND C2
5
on C1.CA = C2.CA
where C1.CE = 'E03' and C2.CE = 'E06' ;
16°\
A-
update EMB set CF='F04' where CE='E01';
update ART set CF='F08' where CA='A01';
B-
Select CF from FRS where TYPF='STA' and (CF in(select CF from EMB) and CF not
in(select CF from ART)) or (CF in(select CF from ART) and CF not in(select CF from
EMB));
17°\
A-
alter table ART add NBEMB NUMBER default 0 ;
B-
update ART set NBEMB=(select count (CE) from COND where ART.CA=COND.CA);
C-
Commit ;
18°\
A-
delete from COND where CA like 'A%' and CE in (select CE from EMB where
lower(NOME)='caisse');
B-
select distinct CE , NOME
from EMB
where CE in (select CE from COND where CA like 'A%');
Methode 2
select Distinct EMB.CE , NOME
from EMB join COND
on EMB.CE = COND.CE where CA like 'A%';
C-
select distinct ART.CA, NOMA
from ART join COND on ART.CA=COND.CA
join EMB on COND.CE = EMB.CE
where upper(NOME)='CAISSE';
D-
6
Rollback;
19°\
A-
alter table COND add (PRIXNET number default 0, COUTBUT number default 0 );
B-
update COND set PRIXNET = NBART*(select PRIXA from ART where COND.CA =
ART.CA );
Methode 2
update COND set PRIXNET = (select NBART*PRIXA from ART where
COND.CA=ART.CA);
20°\
A-
Creer view :
create view V_NBCOND (code,NBEMB)
as select CA , count (CE)
from COND
group by CA ;
select * from V_NBCOND ;
Methode 1 :
select CA , NOMA
from ART
where CA in (select CA from COND Group by CA having count (CE)=(select
Max(NBEMB)from V_NBCOND ));
Methode 2 :
select CA , NOMA
from ART
where NBEMB = (select Max (NBEMB) from V_NBCOND );
B-
Creer view :
create view V_NBART (code,NBART)
as select CE , count (CA)
from COND
group by CE ;
Solution :
select CE , NOME , NBART
from EMB join V_NBART on CE=code
where NBART > (select AVG(NBART)from V_NBART );
C-
Creer view :
create view V_FRSART (code,NBART)
7
as select CF , count (CA)
from ART
group by CF ;
create view V_FRSEMB (code,NBART)
as select CF , count (CE)
from EMB
group by CF ;
Solution :
select cf,nomf, nbart ,nbemb from frs join V_frsart on cf=V_frsart.code join V_frsemb on
cf=V_frsemb.code order by cf asc; he4i ne9sa 5ater taffichi ken les frs elli commun biin
biin les 2 views w table frs bech taffichihom l koll lezem ta3mel join externe ta3 left outer