Sunteți pe pagina 1din 5

Correction compo d’oracle

drop table emp;

drop table dept;

/**** CREATION DES TABLES ****/

/*TABLE EMP*/

CREATE TABLE DEPT (

DEPTNO integer NOT NULL,

DNAME varchar2(30),

LOC varchar2(30),

constraint dept_pk primary key(DEPTNO)

);

CREATE TABLE EMP(

EMPNO integer NOT NULL,

ENAME varchar2(30),

FONCTION varchar2(30),

DATERECT date,

SAL integer,

COMM integer,

DEPTNO integer,

constraint emp_pk primary key(EMPNO),

constraint emp_fk foreign key (DEPTNO) references DEPT(DEPTNO)

);
/** INSERTION DES DONNEES ****/

INSERT INTO DEPT values('10','financier','Tunis');

INSERT INTO DEPT values('20','recherche','Sousse');

INSERT INTO DEPT values('30','commercial','Tunis');

INSERT INTO DEPT values('40','Informatique','Sfax');

/***INSERTION DES DONNEES ***/

INSERT INTO EMP values ('7396','Sassi Kamel','Ouvrier','17/12/1980','250','','20');

INSERT INTO EMP values ('7499','Ben Saleh Med','Vendeur','20/02/1981','500','250','30');

INSERT INTO EMP values ('7521','Jebali ALi','Vendeur','22/02/1981','550','500','30');

INSERT INTO EMP values ('7566','Touati Med','Directeur','02/04/1981','1500','','20');

INSERT INTO EMP values ('7654','Mefteh Moez','Vendeur','28/09/1981','500','1400','30');

INSERT INTO EMP values ('7698','Ajili Sadok','Directeur','01/05/1981','1400','','30');

INSERT INTO EMP values ('7782','Sabri Saber','Directeur','09/06/1981','1550','','10');

INSERT INTO EMP values ('7788','Hani Monia','Chercheur','09/11/1981','1000','','20');

INSERT INTO EMP values ('7839','Hmida','PDG','17/11/1981','3000','','10');

INSERT INTO EMP values ('7844','Hafsa Moncef','Vendeur','08/09/1981','500','','30');

INSERT INTO EMP values ('7876','Halima Kais','Ouvrier','23/09/1981','220','','20');

INSERT INTO EMP values ('7900','Nafti Hamdi','Ouvrier','13/12/1981','240','','30');

INSERT INTO EMP values ('7902','Kassem saleh','Chercheur','03/12/1981','950','','20');

INSERT INTO EMP values ('7934','Youssef Salem','Ouvrier','13/01/1982','250','','10');


commit;

/**** MISE A JOUR DES DONNEES ****/

/*** changer la localisation (LOC) du departement de Tunis à Ben Arous ***/

UPDATE DEPT set LOC='Ben Arous' where LOC='Tunis';

/*** Augmenter de 10% le salaire (SAL) des vendeurs dont la commmision est superieure à 50% du
salaire **/

UPDATE EMP set SAL=SAL*1.1 where COMM>(SAL/2);

/**Attribuer aux employés en poste avant 01/01/82 et ayant une commisiion non spécifiée une
commission égale a la moyenne des commission **/

update EMP set COMM=(select AVG(COMM) from EMP) where DATERECT<'01/01/1982'and COMM
is not null;

/**Anuller les 3 mises a jours précedentes **/

rollback;

/**INTERROGATION DE LA BASE DE BONNES **/

/**Q1**/

select ename, sal, comm, sal+comm as Gaintotal from emp where fonction='Vendeur';
/*Q2*/

select ename, comm from emp where fonction='Vendeur' order by comm desc;

select ename, sal from emp where fonction='Vendeur' order by sal desc;

/**Q3**/

select ename from emp where comm<0.25*sal;

/**Q4*/

select count(ename) from emp where deptno=10;

/**Q5**/

select count(ename) from emp where comm is not null;

/**Q6**/

select count(distinct (fonction)) from emp;

/**Q7*/

select fonction, avg(sal) from emp group by fonction;

/**Q8**/

select sum(emp.sal) from emp,dept where emp.deptno=dept.deptno and dept.dname='commercial';


/**Q9**/

select emp.ename, dept.dname from emp,dept where emp.deptno=dept.deptno;

/**Q10**/

select ename,fonction,sal from emp where sal=(select max(sal) from emp);

/**Q11**/

select ename from emp where sal>(select sal from emp where ename='Kassem saleh');

/**Q12*/

select ename from emp where fonction=(select fonction from emp where ename='Kassem saleh');

S-ar putea să vă placă și