Vous êtes sur la page 1sur 21

Base de donnée

Oracle

Elmahdi ERRAJI
Department of Mathematics and Computer Science
High school of technology of Essaouira

November 29, 2022

1 / 24
Questions
• Écrivez une requête SQL pour trouver les employés qui n’ont pas de pourcentage de
commission et qui ont des salaires entre 7000, 12000 (les valeurs de début et de fin sont
incluses.) et qui sont employés dans le département numéro 50. Renvoyez tous les
champs des employés

2 / 24
Questions
• Écrivez une requête SQL pour trouver les employés qui n’ont pas de pourcentage de
commission et qui ont des salaires entre 7000, 12000 (les valeurs de début et de fin sont
incluses.) et qui sont employés dans le département numéro 50. Renvoyez tous les
champs des employés
SELECT ∗ FROM e m p l o y e e s WHERE c o m m i s s i o n p c t I S NULL
AND s a l a r y BETWEEN 7000 AND 12000
AND d e p a r t m e n t i d =50;

3 / 24
Questions
• Écrivez une requête SQL pour trouver les employés qui n’ont pas de pourcentage de
commission et qui ont des salaires entre 7000, 12000 (les valeurs de début et de fin sont
incluses.) et qui sont employés dans le département numéro 50. Renvoyez tous les
champs des employés
SELECT ∗ FROM e m p l o y e e s WHERE c o m m i s s i o n p c t I S NULL
AND s a l a r y BETWEEN 7000 AND 12000
AND d e p a r t m e n t i d =50;

• Écrivez une requête SQL pour calculer le salaire moyen de chaque job ID. Exclure les
enregistrements où le salaire moyen qui est supérieur à 8 000. Renvoyer l’ID de l’emploi,
le salaire moyen

4 / 24
Questions
• Écrivez une requête SQL pour trouver les employés qui n’ont pas de pourcentage de
commission et qui ont des salaires entre 7000, 12000 (les valeurs de début et de fin sont
incluses.) et qui sont employés dans le département numéro 50. Renvoyez tous les
champs des employés
SELECT ∗ FROM e m p l o y e e s WHERE c o m m i s s i o n p c t I S NULL
AND s a l a r y BETWEEN 7000 AND 12000
AND d e p a r t m e n t i d =50;

• Écrivez une requête SQL pour calculer le salaire moyen de chaque job ID. Exclure les
enregistrements où le salaire moyen qui est supérieur à 8 000. Renvoyer l’ID de l’emploi,
le salaire moyen
SELECT j o b i d , AVG( s a l a r y ) FROM e m p l o y e e s
GROUP BY j o b i d HAVING AVG( s a l a r y ) <8000;

5 / 24
Questions
• Écrivez une requête SQL pour trouver les intitulés de poste dont le salaire maximum se
situe entre 12 000 et 18 000 (les valeurs de début et de fin sont incluses). Renvoie
job title, max salary-min salary.

6 / 24
Questions
• Écrivez une requête SQL pour trouver les intitulés de poste dont le salaire maximum se
situe entre 12 000 et 18 000 (les valeurs de début et de fin sont incluses). Renvoie
job title, max salary-min salary.
SELECT j o b t i t l e , m a x s a l a r y −m i n s a l a r y AS s a l a r y d i f f e r e n c e s
FROM j o b s
WHERE m a x s a l a r y BETWEEN 12000 AND 1 8 0 0 0 ;

7 / 24
Questions
• Écrivez une requête SQL pour trouver les intitulés de poste dont le salaire maximum se
situe entre 12 000 et 18 000 (les valeurs de début et de fin sont incluses). Renvoie
job title, max salary-min salary.
SELECT j o b t i t l e , m a x s a l a r y −m i n s a l a r y AS s a l a r y d i f f e r e n c e s
FROM j o b s
WHERE m a x s a l a r y BETWEEN 12000 AND 1 8 0 0 0 ;

• Écrivez une requête SQL pour trouver les employés dont le prénom ou le nom commence
par ’D’. Renvoyer le prénom, le nom

8 / 24
Questions
• Écrivez une requête SQL pour trouver les intitulés de poste dont le salaire maximum se
situe entre 12 000 et 18 000 (les valeurs de début et de fin sont incluses). Renvoie
job title, max salary-min salary.
SELECT j o b t i t l e , m a x s a l a r y −m i n s a l a r y AS s a l a r y d i f f e r e n c e s
FROM j o b s
WHERE m a x s a l a r y BETWEEN 12000 AND 1 8 0 0 0 ;

• Écrivez une requête SQL pour trouver les employés dont le prénom ou le nom commence
par ’D’. Renvoyer le prénom, le nom
SELECT f i r s t n a m e , l a s t n a m e
FROM e m p l o y e e s
WHERE f i r s t n a m e LIKE ’D%’
OR l a s t n a m e LIKE ’D% ’;

9 / 24
Questions

• Écrivez une requête SQL pour trouver les employés qui se sont joints après le 7 septembre
1987. Renvoyez tous les champs.

10 / 24
Questions

• Écrivez une requête SQL pour trouver les employés qui se sont joints après le 7 septembre
1987. Renvoyez tous les champs.
SELECT ∗ FROM e m p l o y e e s WHERE h i r e d a t e > ’1987 −09 −07 ’;

11 / 24
Questions

• Écrivez une requête SQL pour trouver les employés qui se sont joints après le 7 septembre
1987. Renvoyez tous les champs.
SELECT ∗ FROM e m p l o y e e s WHERE h i r e d a t e > ’1987 −09 −07 ’;

• Écrivez une requête SQL pour trouver les départements où un responsable gère quatre
employés ou plus. Renvoie l’identifiant du département

12 / 24
Questions

• Écrivez une requête SQL pour trouver les employés qui se sont joints après le 7 septembre
1987. Renvoyez tous les champs.
SELECT ∗ FROM e m p l o y e e s WHERE h i r e d a t e > ’1987 −09 −07 ’;

• Écrivez une requête SQL pour trouver les départements où un responsable gère quatre
employés ou plus. Renvoie l’identifiant du département
SELECT DISTINCT d e p a r t m e n t i d
FROM e m p l o y e e s
GROUP BY d e p a r t m e n t i d , m a n a g e r i d
HAVING COUNT( e m p l o y e e i d ) >=4;

13 / 24
SUBQUERIES
• Écrivez une requête SQL pour trouver les employés dont les salaires sont supérieurs à la
moyenne de tous les départements. Renvoyer l’identifiant de l’employé, le prénom, le nom
de famille, l’identifiant du poste.

14 / 24
SUBQUERIES
• Écrivez une requête SQL pour trouver les employés dont les salaires sont supérieurs à la
moyenne de tous les départements. Renvoyer l’identifiant de l’employé, le prénom, le nom
de famille, l’identifiant du poste.
SELECT e m p l o y e e i d , f i r s t n a m e , l a s t n a m e , j o b i d
FROM e m p l o y e e s WHERE s a l a r y > ALL
( SELECT AVG( s a l a r y ) FROM e m p l o y e e s
GROUP BY d e p a r t m e n t i d ) ;
• Écrivez une requête SQL pour trouver les employés dont les salaires dépassent 50 % de la
masse salariale totale de leur service. Renvoie le prénom, le nom.

15 / 24
SUBQUERIES
• Écrivez une requête SQL pour trouver les employés dont les salaires sont supérieurs à la
moyenne de tous les départements. Renvoyer l’identifiant de l’employé, le prénom, le nom
de famille, l’identifiant du poste.
SELECT e m p l o y e e i d , f i r s t n a m e , l a s t n a m e , j o b i d
FROM e m p l o y e e s WHERE s a l a r y > ALL
( SELECT AVG( s a l a r y ) FROM e m p l o y e e s
GROUP BY d e p a r t m e n t i d ) ;
• Écrivez une requête SQL pour trouver les employés dont les salaires dépassent 50 % de la
masse salariale totale de leur service. Renvoie le prénom, le nom.
SELECT e1 . f i r s t n a m e , e1 . l a s t n a m e
FROM e m p l o y e e s e1 WHERE s a l a r y >
( SELECT (SUM( s a l a r y ) ) ∗ . 5
FROM e m p l o y e e s e2
WHERE e1 . d e p a r t m e n t i d=e2 . d e p a r t m e n t i d ) ;
16 / 24
JOIN

• Écrivez une requête SQL pour trouver tous les employés qui ont rejoint le 1er janvier 1993
et qui ont quitté le 31 août 1997 ou avant. Renvoyez le titre du poste, le nom du service,
le nom de l’employé et la date d’entrée du poste.

17 / 24
JOIN

• Écrivez une requête SQL pour trouver tous les employés qui ont rejoint le 1er janvier 1993
et qui ont quitté le 31 août 1997 ou avant. Renvoyez le titre du poste, le nom du service,
le nom de l’employé et la date d’entrée du poste.
SELECT j o b t i t l e , department name ,
f i r s t n a m e | | ’ ’ | | l a s t n a m e AS Employee name ,
start date
FROM j o b h i s t o r y
JOIN j o b s USING ( j o b i d )
JOIN d e p a r t m e n t s USING ( d e p a r t m e n t i d )
JOIN e m p l o y e e s USING ( e m p l o y e e i d )
WHERE s t a r t d a t e =’1993− j a v −01 ’
AND e n d d a t e <=’1997−mar −31 ’;

18 / 24
JOIN

• Écrivez une requête SQL pour calculer le salaire moyen, le nombre d’employés recevant
des commissions dans ce département.

19 / 24
JOIN

• Écrivez une requête SQL pour calculer le salaire moyen, le nombre d’employés recevant
des commissions dans ce département.
SELECT department name , AVG( s a l a r y ) , COUNT( c o m m i s s i o n p c t )
FROM d e p a r t m e n t s
JOIN e m p l o y e e s USING ( d e p a r t m e n t i d )
GROUP BY d e p a r t m e n t n a m e ;

20 / 24
The End

21 / 24

Vous aimerez peut-être aussi