Pl sql exercices corriges Abdallah EL Asmar PL SQL ?? Exercices corrigés Considérons les tables suivantes Employees Employeeid FirstName Last Name Departments DepartmentID Departmentname Email Phone Number Hire Date Job ID Salary Commission PCT Manager ID
Abdallah EL Asmar PL SQL ?? Exercices corrigés Considérons les tables suivantes Employees Employeeid FirstName Last Name Departments DepartmentID Departmentname Email Phone Number Hire Date Job ID Salary Commission PCT Manager ID Department ID Ecrire une fonction PL SQL permettant de retourner le salaire moyen de tous les employés d ? un département donné qui ne sont pas de managers Corrigé create or replace function Exemple N employees departmentid type return integer IS moyen integer begin select avg salary into moyen from employees where departmentid N and employeeid not in select managerid from employees where manager id is not null return moyen end Ecrire un trigger permettant de lever une exception dans le cas d'une diminution de salaire des employés Corrigé create or replace trigger Exemple before update of salary on employees for each row begin if new salary old salary then raiseapplicationerror - 'interdit de diminuer le salaire' end if end CAbdallah EL Asmar PL SQL ?? Exercices corrigés Pour archiver l ? historique des opérations de mise à jour de la table Employees on a crée une table History employeeid operationdate operationtype Ecrire un trigger permettant après l ? exécution de chaque opération sur Employees d ? ajouter un tuple concernant cette opération à la table History Corrigé create or replace trigger Exemple after update or insert or delete on employees for each row declare typeop varchar id employees employeeid type begin if inserting then typeop 'insert' id new employeeid elsif updating then typeop 'update' id new employeeid else typeop 'delete' id old employeeid end if insert into history values id sysdate typeop end Pour chaque département a ?cher le nom du département le nom ?rstname et lastname et le salaire de l ? employé ayant le plus grand salaire de ce département Le résultat doit être déterminé de plusieurs manières a Créer une view pour trouver pour chaque département le plus grand salaire puis utiliser cette view dans une requête b Utiliser une seule requête SQL c Créer une procédure en PL SQL Corrigé a Utilisation d ? une view create view salairemax as select departmentid max salary maxsalary from employees group by departmentid select d departmentname e ?rstname ' ' e lastname as name e salary from employees e departments d salairemax s where e departmentid d departmentid and e departmentid s department id and e salary s maxsalary CAbdallah EL Asmar PL SQL ?? Exercices corrigés b Utiliser une seule requête SQL Première méthode utilisation d ? une requête imbriquée dans la clause FROM select d departmentname e ?rstname ' ' e lastname as name e salary from employees e departments d select departmentid max salary maxsalary from employees group by departmentid s where e departmentid d departmentid and e departmentid s departmentid and e salary s maxsalary Deuxième méthode utilisation d ? une requête imbriquée dans la clause WHERE select d departmentname e ?rstname ' ' e lastname as name e salary from employees e departments d where e departmentid d departmentid and e
Documents similaires
-
24
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 22, 2021
- Catégorie Administration
- Langue French
- Taille du fichier 42.5kB