ORACLE
ANNEE ACADEMIQUE 2018-2019
TROISIEME ANNEE OPTION SYSTEME D’INFORMATION
PAGE 1
3 Select * From All_Users;
PAGE 2
5 Ouvrir la session HR. Que remarquez-vous ?
6 Déverrouillez le compte HR
PAGE 3
7 Lister les tables de HR
PAGE 4
8 Donner le nombre de n uplet de chaque table de HR
PAGE 5
9 Créer la table Etudiant (mat: chaine(6), nom: chaine(10), prenom
chaine(20)) dans la session
de esisi3.
SQL> Conn esisi3/e51513 ;
10 Que constatez-vous?
PAGE 6
SQL>grant create table,create view,create
procedure,create session,resource to manager;
PAGE 8
14 Créer le profile app_user–
15 Attribuez ce profile à HR
PAGE 10
TP2
4 Et si l'on veut les noms des employés qui ont les trois plus gros
salaires (avec leur salaire) ?
PAGE 12
5 Noms des employés qui ont le plus gros salaire de leur
département.
SQL>select
first_name,last_name,salary,department_id from
employees, (select max(salary) sal,department_id d
from employees group by employees.department_id)
where salary=sal and department_id=d ;
SQL> select
First_Name,Last_Name,salary,department_id from
employees e where 3 > (select count(*) from
employees where salary > e.salary and
department_id = e.department_id);
PAGE 13
7 Liste des numéros des départements qui ont plus d'employés que
le département 10.
PAGE 14
8 Trouver le nom du (ou des) département(s) qui a le plus
d'employés
PAGE 15
10 Sélectionnez les lignes de V_EMP dont le salaire total est
supérieur à 10.000
SQL>insert into
V_EMP10(employee_id,last_name,department_id,e
mail,phone_number,hire_date,job_id) values
(300,'SOULIER',20,'soul@','12.77.99','12/03/2000','AC
_MGR');
La nouvelle insertion est visible avec la table mais invisible avec la vue
PAGE 17
14 Essayez d'insérer un employé Martin Mouton pour le
département 30. Que se passe-t-il ?
SQL>insert into
v_EMP10(employee_id,last_name,department_id,em
ail,phone_number,hire_date,job_id)
values
(700,'MARTIN',30,'martin@','12.7.99','11/03/2000','AC
_MGR');
16 Créer une vue VIMPOT qui permet de voir l’impôt payé par
chaque employé. l’impot est calculé comme indiquer dans le
tableau ci-dessous
PAGE 19
TP3
SQL>declare
x employees.salary%type;
y employees.salary%type;
begin
select salary into x from employees where
employee_id =120;
select salary into y from employees where
employee_id =122;
update employees set salary =y where
employee_id=120;
update employees set salary =x where
employee_id=122;
end;
/
PAGE 20
2 Augmenter le salaire de l'employé 115 selon les conditions
suivantes : Si l'expérience est supérieure à 10 ans, augmenter le
salaire de 20% Si l'expérience est supérieure à 5 ans, augmenter
le salaire de 10% Autrement 5% .
SQL>declare
dat employees.hire_date%type;
begin
select hire_date into dat from employees where
employee_id=115;
update employees set salary=(
case
when (select (sysdate-dat)/365 from employees where
employee_id=115) > 10 then salary+20*salary/100
when (select (sysdate-dat)/365 from employees where
employee_id=115) between 5 and 10 then
salary+10*salary/100
else salary+5*salary/100
end )
where employee_id=115;
end;
/
PAGE 21
3 Modifier le pourcentage de commission comme suit pour un
employé avec ID = 150. Si le salaire est supérieur à 10000, alors la
commission est de 0,4%, si le salaire est inférieur à 10000 mais
l'expérience est supérieure à 10 ans, 0,35% si le salaire est
inférieur à 3000 alors la commission est de 0,25%. Dans les
autres cas, la commission est de 0,15%.
SQL>declare
dat employees.hire_date%type;
sal employees.salary%type;
begin
select hire_date into dat from employees where
employee_id=150;
select salary into sal from employees where
employee_id=150;
update employees set commission_pct=(case
when sal>10000 then 0.4
when (sal between 3000 and 10000) and (select
(sysdate-dat)/365 from employees where
employee_id=150) > 10 then 0.35
when sal<3000 then 0.25
else 0.15
end)
where employee_id=150;
end;
/
PAGE 22
4 Créez une fonction qui prend l'ID de département et renvoie le
nom du gestionnaire du département.
PAGE 23
5 Créez une fonction qui prend l'ID de l'employé et renvoie le
nombre des emplois occupé par l’employé dans le passé.
PAGE 24
6 Créez une procédure qui prend l'ID du département et change
l'ID du responsable du département pour l'employé du
département le plus rémunéré.
PAGE 25
7 Assurez-vous qu'aucune modification ne peut être apportée à la
table EMPLOYEES avant 6h et après 22h dans une journée.
PAGE 26
8 Créer un déclencheur pour s'assurer que le salaire de l'employé
n'est pas diminué
PAGE 27
TP4
SQL>conn hr/rhu
c
SQL>create user hr1 identified by hr1;
PAGE 28
QUESTION 1
SQL1>conn hr/rhu
c
SQL2>conn hr1/hr1
c
SQL1>commit';
SQL2>commit';
PAGE 29
QUESTION 2
SQL1>commit;
SQL2>commit;
PAGE 30
QUESTION 3 : Donnez un exemple de transactions qui crée une
situation d’inter-blocage.
PAGE 31
PAGE 32