Upload
quinton-bourgeois
View
110
Download
0
Embed Size (px)
Citation preview
• 4 relations– EMPLOYE– SERVICE– LOCALITE– ADRESSE
• Dans quel service travaille De Nardi ?
• Dans quelle ville est implanté le service de Comptabilité ?
• Qui dirige le service de Comptabilité ?
• Où habite De Nardi ?
• Où habite le chef de la R&D ?
REQ 1
select employe.nom, employe.prenom
from employe
REQ 2
REQ 2
select employe.nom, employe.prenom
from employe
where date_emb < { d ’1995-01-01’ }
REQ 3
REQ 3
select nom, prenom, adresse
from employe, adresse
where employe.code_emp = adresse.code_emp
REQ 4
REQ 4
select employe.nom, employe.prenom
from employe, service
where employe.service = service.code_serv and service.nom_serv='Marketing'
REQ 5
REQ 5
select employe.nom, employe.prenom, service.nom_serv
from employe, service
where employe.service=service.code_serv
REQ 6
REQ 6
select service.nom_serv
from service, localite
where service.code_loc = localite.code_loc
and (localite.ville='Lyon' or localite.ville='Paris')
REQ 7
REQ 7
select service.nom_serv
from service, adresse
where service.code_chef=adresse.code_emp and adresse.ville='Paris';
REQ 8
REQ 8
select employe.nom
from employe, service
where employe.service = service.code_serv and employe.salaire > 3000
and nom_serv=‘Marketing’
REQ 9
REQ 9
select employe.nom
from employe, service
where service.code_chef = employe.code_emp
REQ10 : moyenne des salaires des employés
CONSEIL : moyenne des salaires des employés
REQ10 : moyenne des salaires des employés
select avg(salaire)
from employe
REQ11 : moyenne des salaires des titulaires
REQ11 : moyenne des salaires des titulaires
select avg(salaire)
from employe
where titulaire=1
REQ12 : nombre d’employés du service marketing ayant un salaire supérieur à
3000€
REQ12 : nombre d’employés du service marketing ayant un salaire supérieur à
3000€
select count(code_emp)
from employe, service
where service=code_serv
and nom_serv='Marketing'
and salaire > 3000
REQ13 : maximum et minimum des salaires des employés travaillant dans
le service R&D
REQ13 : maximum et minimum des salaires des employés travaillant dans
le service R&D
select max(salaire), min(salaire)
from employe, service
where service=code_serv
and nom_serv='R&D'
REQ14 : nom et prénom des employés dans l’ordre alphabétique croissant du
nom
REQ14: nom et prénom des employés dans l’ordre alphabétique croissant du
nom
select nom, prenom
from employe
order by nom
REQ15: nom et prénom des employés pour lesquels le second caractère du code de
service est un 1, triés dans l’ordre alphabétique décroissant des noms
REQ15: nom et prénom des employés pour lesquels le second caractère du code de
service est un 1, triés dans l’ordre alphabétique décroissant des noms
select nom, prenom
from employe
where service like '_1%'
order by nom desc
REQ16: nom, localité d’implantation et département du service des employés dont
le nom commence par A ou B
REQ16: nom, localité d’implantation et département du service des employés dont
le nom commence par A ou B
select nom_serv, ville, departemen
from employe, service, localite
where service = code_serv
and service.code_loc = localite.code_loc
and (nom like 'A%' or nom like 'B%')
REQ17: nombre d’employés ayant un salaire compris entre 3000€ et 4500€
REQ17: nombre d’employés ayant un salaire compris entre 3000€ et 4500€
select count(code_emp)
from employe
where salaire >= 3000 and salaire <= 4500
REQ18: nom et ville des services dans lesquels au moins un employé
gagne plus de 3800€
REQ18: nom et ville des services dans lesquels au moins un employé
gagne plus de 3800€
select distinct nom_serv, ville
from employe, service, localite
where service=code_serv
and service.code_loc=localite.code_loc
and salaire >= 3800
REQ19: moyenne des salaires des employés groupés par service, avec le
nom de ces services
REQ19: moyenne des salaires des employés groupés par service,avec le nom de ces services
select nom_serv, salaire
from employe, service
where service = code_serv
REQ19: moyenne des salaires des employés groupés par service, avec le nom de ces services
select nom_serv , avg ( salaire )
from employe, service
where service = code_serv
group by nom_serv
REQ20 nom et prénom des employés avec le nom de leur chef de service
REQ20 nom et prénom des employés avec le nom de leur chef de service
REQ20 nom et prénom des employés avec le nom de leur chef de service
select employe.nom , nom_serv, employe1.nom
from employe , service , employe employe1
where employe.service=code_serv
and code_chef=employe1.code_emp
REQ21 nom des chefs des services avec le nombre d’employés dans leur service
REQ21 nom des chefs des services avec le nombre d’employés dans leur service
select employe1.nom, count(employe.code_emp)
from employe , service , employe employe1
where employe.service = code_serv
and code_chef = employe1.code_emp
group by employe1.nom
REQ22 somme des salaires des employés groupés par services dans lesquels plus de 3 employés travaillent
REQ22 somme des salaires des employés groupés par services dans lesquels plus de 3 employés travaillent
select nom_serv, code_emp
from employe, service
where service = code_serv
REQ22 somme des salaires des employés groupés par services dans lesquels plus de 3 employés travaillent
select nom_serv , sum ( salaire )
from employe, service
where service = code_serv
group by nom_serv
having count(code_emp)>3
REQ23 nom des services dans lesquels la moyenne des salaires est supérieure à 3800€
REQ23 nom des services dans lesquels la moyenne des salaires est supérieure à 3800€
select nom_serv, avg(salaire)
from employe, service
where service = code_serv
group by nom_serv
having avg(salaire)>3800
REQ24 nom des services dans lesquels la moyenne des salaires est supérieure à 3800€ et dont la localité d’implantation commence par M
REQ24 nom des services dans lesquels la moyenne des salaires est supérieure à 3800€ et dont la localité d’implantation commence par M
select nom_serv, ville , avg(salaire)
from employe, service, localite
where service = code_serv
and service.code_loc = localite.code_loc
and ville like 'M%'
group by nom_serv, ville
having avg(salaire)>3800
REQ25 employés habitant dans la même ville que leur chef de service.
REQ25 employés habitant dans la même ville que leur chef de service.
select nom , adresse.ville , code_chef , adresse1.ville
from employe , adresse , service , adresse adresse1
where employe.code_emp = adresse.code_emp
and service = code_serv
and code_chef = adresse1.code_emp
and adresse.ville = adresse1.ville
REQ26 employés gagnant plus que leur chef
REQ26 employés gagnant plus que leur chef
select employe.nom , employe.salaire ,
code_chef , employe1.salaire
from employe , service , employe employe1
where employe.service = code_serv
and code_chef = employe1.code_emp
and employe.salaire > employe1.salaire
REQ27 employés ayant le salaire minimum
REQ27 employés ayant le salaire minimum
select nom , salaire
from employe
where salaire = ( select min(salaire) from employe )
REQ28 chef de service gagnant le moins
REQ28 chef de service gagnant le moins
select nom, salaire
from employe, service
where code_chef=code_emp and salaire = ( select min(salaire) from employe, service where code_chef = code_emp )
REQ29 Code et nom des employés non chefs de service
REQ29 Code et nom des employés non chefs de service
select nom
from employe
where code_emp not in ( select code_chef from service
)
REQ29 employés (non chefs de service) gagnant plus qu’un chef de service
REQ29 employés (non chefs de service) gagnant plus qu’un chef de service
select nom
from employe
where employe.salaire > (
select min(salaire)
from employe , service
where code_emp = code_chef
)