Atelier Base de données SQL
1/
create table employe
(Id_emp number primary key ,
prenom varchar(30) not null,
nom varchar(30) not null,
nationalite varchar(40),
age integer check (age >= 20 and age <= 60),
sexe char(1),
service varchar(25),
salaire number (10,3) check (salaire>0) );
--Table créée
2/
insert into employe values ( 10,'Mohamed', 'Amine', 'TUN', 27, 'M', 'Comptabilité', 1000);
insert into employe values ( 20,'Angela', 'Portenca', 'ITA', 30, 'F', 'Informatique', 1200);
insert into employe values ( 30,'Taher', 'Tlili', 'ALG', 35, 'M', 'Comptabilité', 870);
insert into employe values ( 40,'Amira', 'Tounsi', 'TUN', 47, 'F', 'Personnel', 570);
insert into employe values ( 70,'Sonia', 'Tounsi', 'TUN', 40, 'F', 'Informatique', 960);
insert into employe values ( 90,'Salah', 'Ali', 'TUN', 25, 'M', 'Comptabilité', 1400);
insert into employe values ( 80,'Amir', 'Amor', 'TUN', 55, 'M', 'Marketing', 1200);
insert into employe
values ( 100,'Amina', 'Ali', 'TUN', 22, 'F', 'Comptabilité', 1500);
3/
Exécution
4/
update employe
set salaire = salaire * 1.1 ;
5/
update employe
set salaire = salaire * 1.15
where nationalite ='TUN' ;
6/
UPDATE employe set service = 'finance' where service = 'Comptabilité';
7/
delete from employe
where service = 'Marketing';
8/
delete from employe where id_emp = 100 ;
9/
select nom,prenom from employe ;
10/
*) select Nationalite
from employe ;
*) select distinct Nationalite from employe ;
11/
select * from employe ;
12/
select nom,prenom
from employe
where service ='Informatique' ;
13/
select nom,prenom,age from employe where age <50 ;
14/
select nom ,prenom
from employe
where prenom like '%m%' ;
15/
select nom , prenom ,age from employe where nom like 'w???r' ;
16/
*) select prenom , nom from employe
where not(service ='Personnel');
*) select prenom , nom from employe
where service <>'Personnel';
17/
select prenom ,nom from employe where nom not like 'T%';
18/
select prenom from employe where service ='Informatique' and age<30 ;
19/
select prenom,nom
from employe where sexe=’F’ and service <>’personnel’ ;
20/
SELECT prenom, nom
FROM Employe
WHERE (nationalite='TUN' OR nationalite='ALG') AND Sexe='F';
21/
SELECT prenom, nom ,nationalite FROM Employe WHERE nationalite='TUN' OR nationalite='ALG'
AND Sexe='F';
22/
insert into employe values
(24,'adel','bouallem','Alg',,'M',,1000);
23/
select * from employe where age is null ;
select * from employe where service is null ;
24/
*) select id_emp , nom , prenom , age from employe
where age between 30 and 50 ;
*) select id_emp , nom , prenom , age from employe
where age > 30 and age <50 ;
25/
select *from employe where (sexe='m' and (age between 20 and 30))
or (sexe='f' and (age between 40 and 50));//and est plus fort que or
26/
select id_emp , nom , age , service from employe where service in
('comptbilité','informatique','vente');
27/
select id_emp , nom , age , service from employe where
service ='Comptabilité' or service = 'informatique' or service = 'vente';
28/
select * from employe where sexe='m' and age <45 and nationalite not in ('tun', 'ita', 'alg');
29/
select prenom , nom , salaire*0.20 as "commission" from employe ;// select prenom , nom ,
salaire*0.20 as commission from employe ;
30/
select nom , prenom , salaire from employe where sexe ='m' order by salaire desc ;
31/
select * from employe order by (nationalite) , (salaire) desc ;// tri nation apr salaire
32/
select avg(age)
from employe where nationnalité=’TUN ‘ ;
33/ select sum (salaire)
from employe where nationalite ='alg' ;
34/select count(*)
from employe where nationalite ='tun';
35/
select count(distinct(nationalite))
from employe ;
36/
select sum(salaire*0.20) from employe ;
37/
select avg(salaire) , service
from employe
group by (service)
order by (service) desc ;
38/
select avg(salaire) , service from employe
where nationalite = 'tun'
group by (service) order by (service) desc ;
39
select count(*) , sum(salaire) , service
from employe
group by (service) ;
40/
select count(*) , sum(salaire) , nationalite
from employe
group by nationalite
having(count(*)>1);
41/
select count(*) , sum(salaire) , nationalite
from employe
where not(nationalite = 'alg')
group by nationalite
having(count(*)>1);