Vous êtes sur la page 1sur 6

--------------------------Exercice 1 : SQL ORACLE : ---------------------------toad 1)Afficher les shmas de la table emp ------------------------------- dept 2)Copier emp---->employes -------dep---->departement 3)Afficher

les personnes dont le salaire compris entre 2000 et 5000 4)Ajouter la departement statistique localis Rabat 5)Ajouter l'employ 'ZAKARIA' la table employes 6)Listes de tous les dpartements et leurs employs respectifs . 9)affiche la date 15)date le permeir lundi de la date de embauche 16)afficher les salier des employess ous forme des etoiles chaque excircies cont ient des etoiles 17)afficher l'echelon de chaque employes en foction e la colonne job selon les c retaires fonction echelons manager M claerk C salseman S analyste A/ president ___ P pas de job

18) afficher le post le salaire par post de chaque des services 10 20 30 40 avec le salaire total par post 19)afficher les employes aui ont le meme departement que <M allen 20)idem ont un salaire >a la moyenne des salaire 21)idem ont le mme job que celui de "" 22)idem + le saliere des personnes qui depandant de king 23) idem des paartement de sales 24)n departement , localit/ e des services qui on pas d employes. 25) numero employes ,nom,de chef service ayant moins de 3 employees. 26) departement ayant le plus grand nubmbre d emplo 27)idem le plus petit 28) afficher les employes et indique par oui ou non s ils une ou plus de commesi on count extrat : afficher tt les emploies qui on etait recrute le jour de la semaine qui present le plus grand nombre d 'embauches. 29)numbre , nom,et nbre d emploiyes de chaque service aui compte le moins de 5 e

mploiyes 30)le gens qui travaillent avec scott 31) afficher l'arboresante de jones 32) create table test2 as(selct * from emp order by sal) 33) tt l arboresance sans jones 34)idem sans l equipe de jons 35) cree une table test3 du meme structure une seule requete et que la table em p vide (test 3 sera vide ) 36)ajouter comn "commission"avec valeur par defaut 100 37)generalise la valeur par default 38)changer le nom de la table MY_EMPLOYEE avec Your_EMPLOYEE 39)renomer colonne comm en commission 40)ajouter des commanteires 41)lister la commantaire 42)supprimer la ciomlun comm 43)creer une table emp2 avec PK ,chek sur le salaire entre 2000 et 5000, unique sur le ename . creer une table emp3 sans cantr puisa joute idem contr 44)ajouter une colum commission 45)y mettre constr not null 46)creer table EMP4 avec constraint not null au niveau de table 47)creer table dept2 avec deptno pk ajouter deptno au emp3 fk 48)create view a base de la table emp (empno,salaire,comisssion) 49)ajouter 1 employe ataravers le vue 50)creer une vue de 2 tables emp et dept on les joinanat sur colone deptno 51) creer un role ayant les ^privileges suivant sur la table emp: select update (salaire) 52) octroyer ce role a l util Adil que vous aurez creer 53) conncetz vous avec Adil et modificatio le salaire de KING a 6000 veerifier q ue le salaire de KING =6000 54) donne ce role a issam avec la possiblite de le donne a laurtre 66) un scrit qui produit un autre produit script qui contient un truncate des ta bles scott;sed &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

--------------------------Solution 1 : SQL ORACLE : ---------------------------1)SELECT desc emp; --- SELECT desc dept; 2)d --- CREATE TABLE departement as (SELECT * from dept); 3)SELECT * FROM employes WHERE salaire BETWEEN 2000 AND 5000; 4)INSERT INTO departement (id,nom) VALUES (111,'statistique'); 5)INSERT INTO employes (id,nom) VALUES (111,'zakaria');

6)SELECT * FROM departement INNER JOIN employes on departement.id=employes.id 8) SQL> 2 3 4 select d.dname,e.ename from departement d , employes e where d.deptno(+)=e.deptno unione/

5 select d.dname ,e.ename 6 from employes e , departement d 7 where e.deptno (+)=d.deptno ;

9)select sysdate from dual; SQL> select 'nus somme le'

To_char(sysdate,'fmdd/month/yyyy') from dual;

select e.ename ,round(months_between((sysdate,e.hiredate)),0)as MoisTravailles from employes e; 17) select decode(job,'manager','M','clerk','C') gradesas from employes 18)select job "job" sum decode(deptno,10,sal)dept10, sum decode(deptno,20,sal)dept20, sum decode(deptno,10,sal)dept30, sum(sal) "total" from employes group by job; 19) 1 select ename ,deptno 2 from employes 3* where deptno =(select deptno from employes where ename ='Allen')

20) select ename, sal from employes where sal >(select avg(sal) from employes) 21) select ename,sal from emp where mgr in (select empno from emp where ename='KING'); 22)select ename,sal from emp e ,dept d where e.deptno=d.deptno and dname= 24)Select d.deptno,d.loc ,e.ename from employes e,departement d Where e.deptno(+)=d.deptno autreme select d.deptno ,d.loc from departement d where not exists(select e.empno from employes e where e.deptno=d.deptno) /

25) selct empno,ename from emp where deptno=(select deptno from emp group by

26) selct d.depnto ,d.dname,count(*) from departement d, employes e where d.deptno=e.deptno group by d.deptno ,d.dname having count(*) =(select max(coiunt(*)) from employes grpoup by deptno) 27)select d.depnto ,d.dname ,count(*) from departement d, employes e where d.deptno=e.deptno group by d.deptno ,d.dname having count(*) =(select min(count(*)) from employes group by deptno) 31) select empno,ename , job ,mgr from employes connect by prior empno=mgr start with ename ='JONES' 32) select empno,ename , job ,mgr from employes where ename!='JONES' connect by prior empno=mgr start with mgr is null / 33) select empno,ename , job ,mgr from employes connect by prior empno=mgr and ename!='JONES' start with mgr is null 34)create table test1 as (select * from emp where empno is null) create table test1 as (select * from emp where 1=2) 35) requte sql c:\requete.sql 1 ACCEPT employes_numero PROMPT 'veuillez d entrer le numero d employe' 2 ACCEPT employes_nom PROMPT 'veuillez d entrer le nom d emplo ye' 3 ACCEPT employes_prenom PROMPT 'veuillez dentrer le prenom d employe' 4 ACCEPT employes_salaire PROMPT 'veuillez d entrer le salai re d employe' 5 INSERT INTO MY_EMPLOYEE (numero,nom,prenom,salaire) 6 VALUES (&employes_numero, 7* '&employes_nom', '&employes_prenom',&employes_salaire); enregistre sous fichier et fair appel d editeur oacle 43)c les tables alter table emp3 add constraint sal_nn check(sal is not null)

Alter table EMP3 add constraint ename_unique_EMP3 UNIQUE (ename), constraint sal_ck_EMP3 check (sal between 1000 and 5000), * constraint PK_EMP3 primary key (id)) create table EMP2 (id numbre(4) , ename nvarchar(20) , sal numbre(7) , constraint ename_unique UNIQUE (ename), constraint sal_ck check (sal between 1000 and 5000), constraint PK_EMP2 primary key (id)); 46) create table EMP4 (commision number(4), constraint commEMP4 check (commision is not null)) alter table emp3 add constraint * commFK foreign key(deptno) references dept2(deptno) on delete cascade alter table emp3 drop constraint COMMFK; create view vue1 as select empno ,ename,comm from emp; create view vue3 as select emp.empno,emp.ename,dept.deptno from emp ,dept

51)grant SELECT ,UPDATE(sal) on scott.emp to Role1 create user Adil identified by "123" update scott.emp set sal=6000 where ename='KING' 52) grant Role1ed to Issam * with Admin option grant create session to Role1 with admin option ----------------------sys grant select on scott.emp

to Adil ; grant select on scott.emp to Adil with grant option grant select on scott.emp to Issam with grant option 66) set heading off SET ECHO OFF SET FEEDBACK OFF SET PAGESIZE 0 SPOOL c:\truncate.sql select 'TRUNCATE Table' object_name from User_objects where object_type='table'; SPOOL OFF SET ECHO ON SET FEEDBACK ON SET PAGESIZE 24

';'

entregistre sur un fichier fait l appel apartir sql plus avec @c:\truncate.sql il va generer un autre fichier execute avec @....