6
 --------------------------Exercice 1 : SQL ORACLE : ---------------------------- toad 1)Afficher les shémas 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 départements et leurs employés 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

Exercice SQL Oracle

Embed Size (px)

Citation preview

Page 1: Exercice SQL Oracle

5/13/2018 Exercice SQL Oracle - slidepdf.com

http://slidepdf.com/reader/full/exercice-sql-oracle 1/6

 

--------------------------Exercice 1 : SQL ORACLE : ----------------------------

toad

1)Afficher les shémas de la table emp------------------------------- dept

2)Copier emp---->employes

-------dep---->departement3)Afficher les personnes dont le salaire compris entre 2000 et 50004)Ajouter la departement statistique localisé à Rabat5)Ajouter l'employé 'ZAKARIA' à la table employes6)Listes de tous les départements et leurs employés 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 cretaires

fonction echelonsmanager Mclaerk Csalseman Sanalyste A/

president P ___ pas de job

18) afficher le post le salaire par post de chaque des services 10 20 30 40 avecle 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 emplo27)idem le plus petit

28) afficher les employes et indique par oui ou non s ils une ou plus de commesion countextrat : 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

Page 2: Exercice SQL Oracle

5/13/2018 Exercice SQL Oracle - slidepdf.com

http://slidepdf.com/reader/full/exercice-sql-oracle 2/6

 

mploiyes

30)le gens qui travaillent avec scott

31) afficher l'arboresante de jones32) create table test2 as(selct * from emp order by sal)

33) tt l arboresance sans jones34)idem sans l equipe de jons35) cree une table test3 du meme structure une seule requete et que la table emp vide (test 3 sera vide )

36)ajouter comn "commission"avec valeur par defaut 10037)generalise la valeur par default38)changer le nom de la table MY_EMPLOYEE avec Your_EMPLOYEE39)renomer colonne comm en commission40)ajouter des commanteires41)lister la commantaire42)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 contr44)ajouter une colum commission45)y mettre constr not null46)creer table EMP4 avec constraint not null au niveau de table47)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 vue50)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 creer53) conncetz vous avec Adil et modificatio le salaire de KING a 6000 veerifier que le salaire de KING =600054) 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 tables scott;sed

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

--------------------------Solution 1 : SQLORACLE : ----------------------------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');

Page 3: Exercice SQL Oracle

5/13/2018 Exercice SQL Oracle - slidepdf.com

http://slidepdf.com/reader/full/exercice-sql-oracle 3/6

 

6)SELECT * FROM departement INNER JOIN employes on departement.id=employes.id

8)SQL> select d.dname,e.ename2 from departement d , employes e3 where d.deptno(+)=e.deptno4 unione/

5 select d.dname ,e.ename6 from employes e , departement d7 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 employesgroup by job;

19)1 select ename ,deptno2 from employes3* where deptno =(select deptno from employes where ename ='Allen')

20) select ename, salfrom employeswhere 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 dwhere e.deptno=d.deptnoand dname=

24)Select d.deptno,d.loc ,e.ename from employes e,departement dWhere e.deptno(+)=d.deptno

autremeselect d.deptno ,d.locfrom departement dwhere not exists(select e.empno from employes e

where e.deptno=d.deptno)/

Page 4: Exercice SQL Oracle

5/13/2018 Exercice SQL Oracle - slidepdf.com

http://slidepdf.com/reader/full/exercice-sql-oracle 4/6

 

25) selct empno,enamefrom empwhere deptno=(select deptno from emp group by

26) selct d.depnto ,d.dname,count(*)

from departement d, employes ewhere d.deptno=e.deptnogroup by d.deptno ,d.dnamehaving count(*) =(select max(coiunt(*))

from employesgrpoup by deptno)

27)select d.depnto ,d.dname ,count(*)from departement d, employes ewhere d.deptno=e.deptnogroup by d.deptno ,d.dnamehaving count(*) =(select min(count(*))

from employesgroup by deptno)

31) select empno,ename , job ,mgrfrom employesconnect by prior empno=mgrstart with ename ='JONES'

32) select empno,ename , job ,mgrfrom employeswhere ename!='JONES'connect by prior empno=mgrstart with mgr is null

/

33) select empno,ename , job ,mgrfrom employesconnect 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 demploye'2 ACCEPT employes_nom PROMPT 'veuillez d entrer le nom d employe'3 ACCEPT employes_prenom PROMPT 'veuillez dentrer le prenomd employe'4 ACCEPT employes_salaire PROMPT 'veuillez d entrer le salaire 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 oacle43)c

les tablesalter table emp3add constraint sal_nn check(sal is not null)

Page 5: Exercice SQL Oracle

5/13/2018 Exercice SQL Oracle - slidepdf.com

http://slidepdf.com/reader/full/exercice-sql-oracle 5/6

 

Alter table EMP3addconstraint 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 emp3add constraint

* commFK foreign key(deptno) references dept2(deptno) on delete cascade

alter table emp3drop constraint COMMFK;

create view vue1

as select empno ,ename,commfrom emp;

create view vue3as select emp.empno,emp.ename,dept.deptnofrom emp ,dept

51)grant SELECT ,UPDATE(sal)on scott.empto Role1

create user Adil identified by "123"

update scott.emp set sal=6000where ename='KING'

52)grant Role1edto Issam

* with Admin option

grant create session to Role1 with admin option

----------------------sysgrant select on scott.emp

Page 6: Exercice SQL Oracle

5/13/2018 Exercice SQL Oracle - slidepdf.com

http://slidepdf.com/reader/full/exercice-sql-oracle 6/6

 

to Adil ;

grant select on scott.emp to Adilwith grant option

grant select on scott.emp

to Issamwith grant option

66)set heading offSET ECHO OFFSET FEEDBACK OFFSET PAGESIZE 0SPOOL c:\truncate.sqlselect 'TRUNCATE Table' object_name ';'from User_objects

where object_type='table';SPOOL OFFSET ECHO ONSET FEEDBACK ONSET PAGESIZE 24

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