Requêtes
1. Afficher les détails des emplois où le salaire minimum est supérieur à 10000.
SELECT * FROM JOBS WHERE MIN_SALARY > 10000
2. Afficher le prénom et la date d'entrée des employés qui ont rejoint entre 2002 et
2005.
SÉLECTIONNER PRENOM, DATE_DE_RECRUTEMENT DE EMPLOYES
OÙ TO_CHAR(DATE_D_EMBAUCHE, 'YYYY') ENTRE 2002 ET 2005 ORDER BY
DATE_D_EMBAUCHE
3. Afficher le prénom et la date d'embauche des employés qui sont soit programmeurs informatiques soit
Vendeur.
SÉLECTIONNER PRENOM, DATE_DE_RECRUTEMENT
DE LA MAIN-D'ŒUVRE OÙ JOB_ID IN ('IT_PROG', 'SA_MAN')
4. Afficher les employés qui ont rejoint après le 1er janvier 2008.
SÉLECTIONNER * DE EMPLOYÉS où date_d_embauche > '01-janv-2008'
5. Afficher les détails de l'employé avec l'ID 150 ou 160.
SÉLECTIONNER * DES EMPLOYÉS OÙ ID_EMPLOYE IN (150,160)
6. Afficher le prénom, le salaire, le pourcentage de commission et la date d'embauche des employés ayant un salaire
moins de 10000.
SÉLECTIONNER PRÉNOM, SALAIRE, POURCENTAGE_DE_COMMISSION, DATE_D_EMBAUCHE À PARTIR DES EMPLOYÉS
OÙ SALAIRE < 10000
7. Afficher le titre du poste, la différence entre les salaires minimum et maximum pour les emplois
avec un salaire maximum dans la plage de 10000 à 20000.
SELECT JOB_TITLE, MAX_SALARY-MIN_SALARY DIFFERENCE FROM JOBS WHERE
SALAIRE_MAX ENTRE 10000 ET 20000
8. Afficher le prénom, le salaire et arrondir le salaire à des milliers.
SÉLECTIONNER PRENOM, SALAIRE, ARRONDI(SALAIRE, -3) FROM EMPLOYES
9. Afficher les détails des emplois dans l'ordre décroissant du titre.
SÉLECTIONNER * DE JOBS ORDER PAR JOB_TITLE
10.Afficher les employés dont le prénom ou le nom de famille commence par S.
SÉLECTIONNER PRÉNOM, NOM DE FAMILLE DE EMPLOYÉS OÙ PRÉNOM COMME 'S%'
OU LAST_NAME LIKE 'S%'
11.Afficher les employés qui ont rejoint au mois de mai.
SELECT * FROM EMPLOYES WHERE TO_CHAR(DATE_EMBAUCHE, 'MON') = 'MAI'
12.Afficher les détails des employés où le pourcentage de commission est nul et le salaire dans
la plage de 5000 à 10000 et le département est 30.
SELECT * FROM EMPLOYÉS WHERE COMMISSION_PCT EST NULL ET SALAIRE ENTRE
5000 ET 10000 ET DEPARTMENT_ID=30
13.Afficher le prénom et la date du premier salaire des employés.
SÉLECTIONNER NOM_DE_NAISSANCE, DATE_D_EMBAUCHE, DERNIER_JOUR(DATE_D_EMBAUCHE)+1 DE EMPLOYÉS
14.Afficher le prénom et l'expérience des employés.
Sélectionner PRÉNOM, DATE_D_EMBAUCHE, SOL (SYSDATE - DATE_D_EMBAUCHE) / 365 FROM
EMPLOYÉS
15.Afficher le prénom des employés qui ont rejoint en 2001.
SELECT PRENOM, DATE_DE_RECRUTEMENT FROM EMPLOYES WHERE TO_CHAR(DATE_DE_RECRUTEMENT,
'YYYY')=2001
16.Afficher le prénom et le nom de famille après avoir converti la première lettre de chaque nom en majuscule.
MAJUSCULE ET LE RESTE EN MINUSCULE.
SÉLECTIONNER INITCAP(PRÉNOM), INITCAP(NOM_DE_FAMILLE) DE EMPLOYÉS
17.Afficher le premier mot du titre du poste.
SÉLECTIONNER INTITULÉ_DU_TRAVAIL, SUBSTR(INTITULÉ_DU_TRAVAIL,1, INSTR(INTITULÉ_DU_TRAVAIL, ' ')-1) À PARTIR DE
EMPLOIS
18.Afficher la longueur du prénom pour les employés dont le nom de famille contient le caractère 'b'
après la 3e position.
SÉLECTIONNER PRENOM, NOM DE FAMILLE DE EMPLOYÉS OÙ INSTR(NOM_DE_FAMILLE, 'B') >
3
19.Afficher le prénom en majuscules et l'adresse e-mail en minuscules pour les employés
où le prénom et l'adresse e-mail sont identiques, peu importe la casse.
SÉLECTIONNER UPPER(PRENOM), LOWER(E-MAIL) DE EMPLOYÉS OÙ
UPPER(PRENOM)= UPPER(COURRIEL)
20.Afficher les employés qui ont rejoint cette année.
SELECT * FROM EMPLOYES WHERE TO_CHAR(DATE_D'EMBAUCHE,'YYYY')=TO_CHAR(DATE_SYST,
'AAAA')
21.Afficher le nombre de jours entre la date système et le 1er janvier 2011.
SÉLECTIONNER SYSDATE - to_date('01-janv-2011') À PARTIR DE DUAL
22.Afficher le nombre d'employés ayant rejoint chaque mois de l'année en cours.
SÉLECTIONNER TO_CHAR(DATE_D'EMBAUCHE,'MM'), COMPTER(*) DE EMPLOYÉS
OÙ TO_CHAR(DATE_EMBAUCHE,'YYYY')= TO_CHAR(DATE_SYSDATE,'YYYY') GROUPE PAR
TO_CHAR(DATE_EMBAUCHE,'MM')
23. Afficher l'ID du responsable et le nombre d'employés gérés par le responsable.
SÉLECTIONNER MANAGER_ID, COMPTE(*) DE EMPLOYES GROUPE PAR MANAGER_ID
24. Afficher l'ID de l'employé et la date à laquelle il a quitté son emploi précédent.
SÉLECTIONNER EMPLOYEE_ID, MAX(DATE_FIN) DE HISTORIQUE_D'EMPLOI GROUPE PAR EMPLOYEE_ID
25.Afficher le nombre d'employés ayant rejoint après le 15 du mois.
SÉLECTIONNER COUNT(*) DE EMPLOYÉS OÙ TO_CHAR(DATE_D_ENGAGEMENT,'JJ') > 15
26.Afficher l'identifiant du pays et le nombre de villes que nous avons dans le pays.
SÉLECTIONNER COUNTRY_ID, COMPTER (*) DE LOCATIONS GROUPE PAR COUNTRY_ID
27.Afficher le salaire moyen des employés dans chaque département qui ont une commission
pourcentage.
SÉLECTIONNER L'ID_DÉPARTEMENT, MOYENNE(SALAIRE) À PARTIR DE EMPLOYÉS
OÙ COMMISSION_PCT N'EST PAS NULL GROUPE PAR DEPARTMENT_ID
28.Afficher l'ID de l'emploi, le nombre d'employés, la somme des salaires et la différence entre le plus élevé
salaire et salaire le plus bas des employés du poste.
SÉLECTIONNER JOB_ID, COMPTE(*), SOMME(SALAIRE), MAX(SALAIRE)-MIN(SALAIRE) SALAIRE
DE GENS GROUPER PAR JOB_ID
Affichez l'ID des emplois dont le salaire moyen est supérieur à 10000.
SÉLECTIONNER JOB_ID, MOYENNE(SALARY) DE EMPLOYEES
GROUPE PAR JOB_ID
AYANT MOYENNE(SALAIRE)>10000
30.Afficher les années au cours desquelles plus de 10 employés ont rejoint.
SÉLECTIONNER TO_CHAR(DATE_DE_RECRUTEMENT, 'YYYY') DE EMPLOYÉS
GROUPE PAR TO_CHAR(DATE_EMBAUCHE,'AAAA')
AVOIR UN NOMBRE(EMPLOYEE_ID) > 10
31. Afficher les départements dans lesquels plus de cinq employés ont une commission
pourcentage.
SELECT DEPARTMENT_ID FROM EMPLOYES
OÙ COMMISSION_PCT N'EST PAS NUL
GROUPE PAR ID_DE_PARTIE
AVOIR COUNT(COMMISSION_PCT) > 5
32.Afficher l'identifiant de l'employé pour les employés qui ont occupé plus d'un poste dans le passé.
SÉLECTIONNER EMPLOYEE_ID DE JOB_HISTORY GROUPE PAR EMPLOYEE_ID AYANT COMPTE(*)
1
33.Afficher l'ID des emplois qui ont été réalisés par plus de 3 employés pour plus de 100
jours.
SÉLECTIONNER JOB_ID À PARTIR DE HISTORIQUE_D'EMPLOIS
OÙ DATE_FIN - DATE_DEBUT > 100
GROUPE PAR JOB_ID
AVOIR COUNT(*)>3
34.Afficher l'ID du département, l'année et le nombre d'employés recrutés.
SELECT DEPARTMENT_ID, TO_CHAR(HIRE_DATE,'YYYY'), COUNT(EMPLOYEE_ID)
DE LA PART DES EMPLOYÉS
GROUPE PAR DEPARTMENT_ID, TO_CHAR(HIRE_DATE, 'YYYY')
ORDER BY ID_DÉPARTEMENT
35.Afficher les départements où un manager gère plus de 5 employés.
SÉLECTIONNER DISTINCTEMENT L'ID_DÉPARTEMENT
DES EMPLOYÉS
GROUPE PAR ID_DEPARTMENT, ID_GESTIONNAIRE
AYANT UN COMPTE(IDENTIFIANT_EMPLOYÉ) > 5
36.Changer le salaire de l'employé 115 à 8000 si le salaire actuel est inférieur à 6000.
METTRE À JOUR LES EMPLOYÉS SET SALAIRE = 8000 OÙ ID_EMPLOYÉ = 115 ET SALAIRE <
6000
37.Insérer un nouvel employé dans les employés avec tous les détails requis.
INSÉRER DANS EMPLOYÉS (ID_EMPLOYÉ, PRÉNOM, NOM_DE_FAMILLE, EMAIL,
NUMÉRO_DE_TÉLÉPHONE
VALUES (207, 'ANGELA', 'SNYDER','ANGELA',' 215 253 4737
SYSDATE, 'SA_MAN', 12000, 80)
38.Supprimer le département 20.
SUPPRIMER DEPARTEMENTS OÙ DEPARTMENT_ID=20
39. Changer l'identifiant de poste de l'employé 110 en IT_PROG si l'employé appartient au département
10 et l'ID de travail existant ne commence pas par IT.
METTRE À JOUR LES EMPLOYÉS SET JOB_ID= 'IT_PROG'
OÙ EMPLOYEE_ID=110 ET DEPARTMENT_ID=10 ET JOB_ID NE LIKE PAS 'IT%'
40.Insérer une ligne dans la table départements avec l'ID du manager 120 et l'ID de localisation dans n'importe quel
ID de localisation pour la ville de Tokyo.
INSÉRER DANS DÉPARTEMENTS (150,'SPORTS',120,1200)
41.Afficher le nom du département et le nombre d'employés dans le département.
SÉLECTIONNER NOM_DU_DÉPARTEMENT, COUNT(*) DE EMPLOYÉS REJOINDRE NATURELLEMENTDÉPARTEMENTS
GROUPE PAR NOM_DU_DÉPARTEMENT
42.Afficher le titre du poste, l'identifiant de l'employé, le nombre de jours entre la date de fin et la date de début
date pour tous les emplois du département 30 à partir de l'historique des emplois.
SÉLECTIONNER ID_EMPLOYÉ, TITRE_D'EMPLOI, DATE_FIN-DATE_DEBUT JOURS
DE L'HISTORIQUE_DES_POSTES JOINDRE NATURELLEMENT LES POSTES
OÙ DEPARTMENT_ID=30
43.Afficher le nom du département et le prénom du responsable.
SÉLECTIONNER NOM_DU_DÉPARTEMENT, PRÉNOM DE DÉPARTEMENTS D REJOINDRE EMPLOYÉS E
ON (D.MANAGER_ID=E.EMPLOYEE_ID)
44.Afficher le nom du département, le nom du responsable et la ville.
SÉLECTIONNER NOM_DU_SERVICE, PRÉNOM, VILLE DE RÉPARTITIONS D REJOINDRE
EMPLOYÉS E ON (D.MANAGER_ID = E.EMPLOYEE_ID) REJOINDRE LOCATIONS L EN UTILISANT
(IDENTIFIANT_DE_LOCALISATION)
45.Afficher le nom du pays, la ville et le nom du département.
SÉLECTIONNER
DE PAYS REJOINDRE LOCATIONS EN UTILISANT (ID_PAYS)
JOINDRE LES DÉPARTEMENTS EN UTILISANT (ID_DE_LOCALISATION)
46. Afficher le titre du poste, le nom du département, le nom de famille de l'employé et la date de début de tous les emplois
de 2000 à 2005.
SELECT INTITULÉ_DU_POSTE, NOM_DU_DÉPARTEMENT, NOM_DE_FAMILLE, DATE_DE_DEBUT
DE L'HISTORIQUE_DES_TRAVAILS REJOINDRE LES_TRAVAUX EN_UTILISANT (ID_DU_TRAVAIL) REJOINDRE LES_DEPARTEMENTS
EN UTILISANT (DEPARTMENT_ID) JOINDRE EMPLOYES EN UTILISANT (EMPLOYEE_ID)
OÙ TO_CHAR(DATE_DE_DÉBUT,'YYYY') ENTRE 2000 ET 2005
47.Afficher le titre du poste et le salaire moyen des employés
SÉLECTIONNER TITRE_DU_TRAVAIL, MOYENNE(SALAIRE) DE EMPLOYÉS
JOINDRE NATURELLEMENT GROUPER PAR LE TITRE DU POSTE
48.Afficher le titre du poste, le nom de l'employé et la différence entre le salaire maximum pour
le poste et le salaire de l'employé.
SÉLECTIONNER INTITULÉ_DU_POSTE, PRÉNOM, MAX_SALAIRE-SALAIRE DIFFÉRENCE DE
EMPLOYÉS NATURAL JOIN JOBS
49.Afficher le nom de famille, le titre du poste des employés qui ont un pourcentage de commission et
appartient au département 30.
SÉLECTIONNER JOB_TITLE, FIRST_NAME, MAX_SALARY-SALARY DIFFÉRENCE DE
EMPLOYÉS JOINDRE NATURELLEMENT DES EMPLOIS OÙ L'ID_DE_PARTI = 30
50.Afficher les détails des emplois effectués par tout employé qui perçoit actuellement
plus de 15000 de salaire.
SÉLECTIONNER JH.*
DE L'HISTORIQUE_D'EMPLOIS JH JOINDRE EMPLOYÉS E SUR (JH.EMPLOYEE_ID =
E.NUMÉRO_EMPLOYÉ)
OÙ SALAIRE > 15000
51.Afficher le nom du département, le nom du responsable et le salaire du responsable pour tous
des managers dont l'expérience est de plus de 5 ans.
SÉLECTIONNER NOM_DÉPARTEMENT, PRÉNOM, SALAIRE
DE DÉPARTEMENTS D REJOINDRE EMPLOYÉS E SUR (D.MANAGER_ID=E.MANAGER_ID)
O DE (SYSDATE-HIRE_DATE) / 365 > 5
52.Afficher le nom de l'employé si l'employé a rejoint avant son manager.
SÉLECTIONNER PRÉNOM DE EMPLOYÉS E1 REJOINDRE EMPLOYÉS E2 SUR
(E1.MANAGER_ID=E2.EMPLOYEE_ID)
OÙ E1.DATE_DE_RECRUTEMENT < E2.DATE_DE_RECRUTEMENT
53.Afficher le nom de l'employé, le titre du poste pour les emplois que l'employé a occupés dans le passé où le poste
a été fait il y a moins de six mois.
SÉLECTIONNER
(JH.EMPLOYEE_ID = E.EMPLOYEE_ID) JOINDRE JOBS J ON (JH.JOB_ID = J.JOB_ID)
OÙ MONTHS_BETWEEN(END_DATE,START_DATE) < 6
54.Afficher le nom de l'employé et le pays dans lequel il travaille.
SÉLECTIONNER PRENOM, NOM_DU_PAYS DE EMPLOYES REJOINDRE DEPARTEMENTS
UTILISANT(ID_DE_DÉPARTEMENT)
REJOINDRE LES LOCATIONS EN UTILISANT (ID_EMPLACEMENT)
REJOINDRE LES PAYS EN UTILISANT ( COUNTRY_ID)
55. Afficher le nom du département, le salaire moyen et le nombre d'employés avec
commission au sein du département.
SÉLECTIONNER NOM_DÉPARTEMENT, MOYENNE(SALAIRE), COMPTE(COMMISSION_PCT)
DE FROM départements REJOINDRE EMPLOYÉS EN UTILISANT (ID_DÉPARTEMENT)
GROUP BY NOM_DU_DEPARTEMENT
56.Afficher le mois au cours duquel plus de 5 employés ont rejoint dans n'importe quel département situé
à Sydney.
SÉLECTIONNER TO_CHAR(DATE_D_EMBAUCHE,'MON-YY')
DE EMPLOYÉS REJOINDRE DÉPARTEMENTS EN UTILISANT (ID_DÉPARTEMENT) REJOINDRE LOCATIONS
UTILISANT (ID_LOCALISATION)
OÙ VILLE = 'Seattle'
GROUPE PAR TO_CHAR(DATE_D_EMBAUCHE,'MON-YY')
AVOIR COUNT(*) > 5
57.Afficher les détails des départements dans lesquels le salaire maximum est supérieur à 10000.
SELECT * FROM DÉPARTEMENTS WHERE DEPARTMENT_ID IN
( SÉLECTIONNER L'ID_DÉPARTEMENT DES EMPLOYÉS
GROUP BY DEPARTMENT_ID
AYANT MAX(SALAIRES)>10000)
58.Afficher les détails des départements gérés par 'Smith'.
SÉLECTIONNER * DEPARTEMENTS OÙ MANAGER_ID DANS
(SÉLECTIONNER ID_EMPLOYÉ DE EMPLOYÉS OÙ PRÉNOM='SMITH')
59.Afficher les emplois dans lesquels les employés ont rejoint cette année.
SÉLECTIONNER * DE TRAVAILS OÙ ID_DE_TRAVAIL DANS
(SÉLECTIONNER JOB_ID DE EMPLOYEES OÙ
TO_CHAR(HIRE_DATE,'YYYY')=TO_CHAR(SYSDATE,'YYYY'))
60.Afficher les employés qui n'ont fait aucun travail dans le passé.
SELECT * FROM EMPLOYES WHERE EMPLOYEE_ID NOT IN
(SÉLECTIONNER ID_EMPLOYÉ DE L'HISTORIQUE_DES_POSTES)
61.Afficher le titre du poste et le salaire moyen des employés qui ont occupé un emploi dans le passé.
SÉLECTIONNER INTITULÉ_DE_POSTE, MOYENNE(SALAIRE) DE MÉTIERS JOINDRE NATURELLEMENT EMPLOYÉS
GROUPE PAR TITRE_DE_TRAVAIL
OÙ EMPLOYEE_ID DANS
(SELECT ID_EMPLOYÉ FROM HISTORIQUE_DES_METIERS)
62.Afficher le nom du pays, la ville et le nombre de départements où le département en a plus
que 5 employés.
NOM_PAYS
DE PAYS REJOINDRE SITES EN UTILISANT (ID_PAYS) REJOINDRE DÉPARTEMENTS EN UTILISANT
(IDENTIFIANT_LIEU)
OÙ DEPARTMENT_ID DANS
(SÉLECTIONNER L'ID_DEPARTEMENT DE EMPLOYÉS
GROUPE PAR ID_DEPARTEMENT
AYANT COMPTE(DÉPARTEMENT_ID)>5)
GROUPE PAR NOM_PAYS, VILLE;
63.Afficher les détails du responsable qui manage plus de 5 employés.
SÉLECTIONNER PRÉNOM À PARTIR DES EMPLOYÉS
OÙ EMPLOYEE_ID DANS
(SÉLECTIONNER L'ID_DU_MANAGER DE EMPLOYÉS
GROUPE PAR MANAGER_ID
AYANT UN COMPTE(*)>5)
64.Afficher le nom de l'employé, le titre du poste, la date de début et la date de fin des emplois passés de tous
employés avec pourcentage de commission nul.
SÉLECTIONNER
DE L'HISTORIQUE_DES_JOBS JH REJOINDRE LES_JOBS J EN UTILISANT (JOB_ID) REJOINDRE LES_EMPLOYÉS E
( JH.ID_EMPLOYE = E.ID_EMPLOYE)
OÙ COMMISSION_PCT EST NULL
65.Affichez les départements dans lesquels aucun employé n'a rejoint au cours des deux dernières années.
SÉLECTIONNER * DEPARTEMENTS
OÙ DEPARTMENT_ID N'EST PAS DANS
(SÉLECTIONNER ID_DÉPARTEMENT DE EMPLOYÉS OÙ SOL ENSEMBLE((DATE_SYSTÈME -
(DATE_D_EMBAUCHE)/365) < 2)
66.Afficher les détails des départements dans lesquels le salaire maximum est supérieur à 10000 pour
employés qui ont effectué un travail dans le passé.
Sélectionnez * à partir des DÉPARTEMENTS
OÙ DEPARTMENT_ID DANS
(SÉLECTIONNER ID_DÉPARTEMENT DE EMPLOYÉS
Où EMPLOYEE_ID IN (Sélectionnez EMPLOYEE_ID FROM JOB_HISTORY)
GROUPE PAR IDENTIFIANT_DEPARTMENT
AYANT MAX(SALAIRE) >10000)
67.Afficher les détails du travail actuel pour les employés ayant travaillé comme programmeurs informatiques dans le
passé.
SÉLECTIONNER * DE JOBS
OÙ JOB_ID DANS
(SÉLECTIONNER JOB_ID DE EMPLOYES OÙ EMPLOYEE_ID DANS
(SELECT EMPLOYEE_ID FROM JOB_HISTORY WHERE JOB_ID='IT_PROG')
68.Afficher les détails des employés percevant le salaire le plus élevé dans le département.
SÉLECTIONNER DEPARTMENT_ID, PRENOM, SALAIRE DE EMPLOYES EXTÉRIEUR OÙ
SALARY
(SÉLECTIONNER MAX(SALAIRE) DE EMPLOYÉS OÙ ID_DÉPARTEMENT =
OUTER.DEPARTEMENT_ID)
69.Afficher la ville de l'employé dont l'ID est 105.
SÉLECTIONNEZ VILLE DE LOCATIONS OÙ LOCATION_ID =
(SELECT LOCATION_ID FROM DEPARTMENTS WHERE DEPARTMENT_ID =
(SÉLECTIONNER L'ID_DEPARTMENT DE EMPLOYÉS OÙ
105
)
70.Afficher le troisième salaire le plus élevé de tous les employés
sélectionner le salaire
de la principale des employés
où 2 = (sélectionner le compte (distinct salaire)
des employés
où salaire > salaire.principal)