View
880
Download
33
Embed Size (px)
Citation preview
7/24/2019 Ejercicios Resueltos de SQL en ORACLE Con El Esquema HR en ESPAÑOL
http://slidepdf.com/reader/full/ejercicios-resueltos-de-sql-en-oracle-con-el-esquema-hr-en-espanol 1/9
CONSULTAS SQL EN ORACLE
Esquema Conceptual HR
job_history_jobs
employees_jobs
employees_departments
departments_employees
job_hi story_employees job_history_departments
departments_locations
locations_countries
countries_regions
employees_employees
REGIONS
REGION_I
REGION_N!"E
#pi$ Number
%ariable characters &'()
#"$
*+_REGIONS #pi$
-OC!.IONS
-OC!.ION_I
S.REE._!RESS
*OS.!-_COE
CI./
S.!.E_*RO%INCE
#pi$ Number &0)
%ariable characters &01)
%ariable characters &2')
%ariable characters &31)
%ariable characters &'()
#"$
#"$
*+_-OC!.IONS,,,
#pi$
4O5_HIS.OR/
S.!R._!.E
EN_!.E
#pi$ ate 6 .ime
ate 6 .ime
#"
#"
*+_4O5_HIS.OR/,,,
#pi$
4O5S
4O5_I
4O5_.I.-E
"IN_S!-!R/
"!7_S!-!R/
#pi$ %ariable characters &21)
%ariable characters &3()
Number &8)
Number &8)
#"$
#"$
*+_4O5S
,,,
#pi$
E"*-O/EES
E"*-O/EE_I
"!N!GER_I
9IRS._N!"E
-!S._N!"E
E"!I-
*HONE_N:"5ER
HIRE_!.E
S!-!R/CO""ISSION_*C.
#pi$ Number &8)
Number &8)
%ariable characters &'1)
%ariable characters &'()
%ariable characters &'()
%ariable characters &'1)
ate 6 .ime
Number &;<')Number &'<')
#"$
#"$
#"$
#"$
*+_E"*-O/EES
,,,
#pi$
E*!R."EN.S
E*!R."EN._I
E*!R."EN._N!"E
"!N!GER_I
#pi$ Number &0)
%ariable characters &31)
Number &0)
#"$
#"$
*+_E*!R."EN.S
,,,
#pi$
CO:N.RIES
CO:N.R/_I
CO:N.R/_N!"E
#pi$ Characters &')
%ariable characters &01)
#"$
*+_CO:N.RIES #pi$
7/24/2019 Ejercicios Resueltos de SQL en ORACLE Con El Esquema HR en ESPAÑOL
http://slidepdf.com/reader/full/ejercicios-resueltos-de-sql-en-oracle-con-el-esquema-hr-en-espanol 2/9
Esquema 9=sico HR
REGIONS
REGION_I
REGION_N!"E
N:"5ER
%!RCH!R'&'()
#p>$
-OC!.IONS
-OC!.ION_I
CO:N.R/_I
S.REE._!RESS
*OS.!-_COE
CI./
S.!.E_*RO%INCE
,,,
N:"5ER&0)
CH!R&')
%!RCH!R'&01)
%!RCH!R'&2')
%!RCH!R'&31)
%!RCH!R'&'()
#p>$
#?>$
4O5_HIS.OR/
E"*-O/EE_I
S.!R._!.E
E*!R."EN._I
4O5_I
EN_!.E
,,,
N:"5ER&8)
!.E
N:"5ER&0)
%!RCH!R'&21)
!.E
#p><?>'$
#p>$
#?>3$
#?>2$
4O5S
4O5_I
4O5_.I.-E
"IN_S!-!R/
"!7_S!-!R/
,,,
%!RCH!R'&21)
%!RCH!R'&3()
N:"5ER&8)
N:"5ER&8)
#p>$
E"*-O/EES
E"*-O/EE_I
E"*_E"*-O/EE_I
E*!R."EN._I
4O5_I
"!N!GER_I
9IRS._N!"E
-!S._N!"E
E"!I-
*HONE_N:"5ER
HIRE_!.E
S!-!R/
CO""ISSION_*C.
,,,
N:"5ER&8)
N:"5ER&8)
N:"5ER&0)
%!RCH!R'&21)
N:"5ER&8)
%!RCH!R'&'1)
%!RCH!R'&'()
%!RCH!R'&'()
%!RCH!R'&'1)
!.E
N:"5ER&;<')
N:"5ER&'<')
#p>$
#?>3$
#?>'$
#?>2$
E*!R."EN.S
E*!R."EN._I
E"*-O/EE_I
-OC!.ION_I
E*!R."EN._N!"E
"!N!GER_I
,,,
N:"5ER&0)
N:"5ER&8)
N:"5ER&0)
%!RCH!R'&31)
N:"5ER&0)
#p>$
#?>2$
#?>'$
CO:N.RIES
CO:N.R/_I
REGION_I
CO:N.R/_N!"E
CH!R&')
N:"5ER
%!RCH!R'&01)
#p>$
#?>$
7/24/2019 Ejercicios Resueltos de SQL en ORACLE Con El Esquema HR en ESPAÑOL
http://slidepdf.com/reader/full/ejercicios-resueltos-de-sql-en-oracle-con-el-esquema-hr-en-espanol 3/9
1. esarrolle una consulta que liste el nombre del empleado< el c@digo del departamento y la ?echa de inicio qu
empeA@ a trabajar< ordenando el resultado por departamento y por ?echa de inicio< el ultimo que entro a trabajar B
de primero,
select *RI"ER_NO"5RE< E*!R.!"EN.O_I< 9ECH!_CON.R!.!CION
from E"*-E!OS
order by E*!R.!"EN.O_I< 9ECH!_CON.R!.!CION desc;
2. esarrolle una consulta que liste el c@digo< nombre y apellido de los empleados y sus respectiBos ?ejes con titu
Empleado y 4e?e
select e2,E"*-E!O_I||’ ‘||e2,*RI"ER_NO"5RE ||’ ‘||e2,!*E--IO as Empelado< e',E"*-E!O_I||’
e',*RI"ER_NO"5RE||’ ‘||e',!*E--IO as 4e?e
from E"*-E!OS e2<E"*-E!OS e'
!ere e2,GEREN.E_I"e',E"*-E!O_I;
#. esarrolle una consulta que liste los pa=ses por regi@n< los datos que debe mostrar son el c@digo de la regi@n y nombr
de la regi@n con los nombre se sus pa=ses,
select r,REGION_I< REGION_NO"5RE< *!IS_NO"5RE
from REGIONES r< *!ISES c
!ere r,REGION_I"c,REGION_I;
$. Realice una consulta que muestre el c@digo< nombre< apellido< inicio y ?in del historial de trabajo de los empleados,select e,E"*-E!O_I< *RI"ER_NO"5RE< !*E--IO< 9ECH!_INICI!-< 9ECH!_9IN!-
from E"*-E!OS e<HIS.ORI!-_.R!5!4O j
!ere e,E"*-E!O_I" j,E"*-E!O_I;
%. Elabore una consulta que muestre el nombre y apellido del empleado con titulo Empleado< el salario< porcentaje d
comisi@n< la comisi@n y salario total,
select *RI"ER_NO"5RE||’ ‘|| !*E--IO Empleado< S!-!RIO Salario< *ORCEN.!4E_CO"ISION *orcentaj
&'l(*ORCEN.!4E_CO"ISION ) S!-!RIO<1* Comision< S!-!RIO + &'l(*ORCEN.!4E_CO"ISION ) S!-!RIO<
,Salario total-
from E"*-E!OS;
. Elabore una consulta que liste nombre del trabajo y el salario de los empleados que son manager< cuyo c@digo es 2112'( y cuyo salario sea mayor de 8111,
select .R!5!4O_.I.:-O< S!-!RIO
from E"*-E!OS e< .R!5!4OS j
!ere e,.R!5!4O_I"e,.R!5!4O_I
/&d GEREN.E_I"211 or GEREN.E_I " 2'( /&d S!-!RIO 0 8111;
. esarrolle una consulta que liste el c@digo de la localidad< la ciudad y el nombre del departamento de Dnicamente de lo
que se encuentran ?uera de estados unidos &:S),
select l,-OC!-I!_I< CI:!< NO"5RE_E*!R.!"EN.O
from E*!R.!"EN.OS d<-OC!-I!ES l<*!ISES c
!ere d,-OC!-I!_I"l,-OC!-I!_I
/&d l,*!IS_I"c,*!IS_I
/&d c,*!IS_I "‘:S’;
3. Realice una consulta que muestres el c@digo de la regi@n< nombre de la regi@n y el nombre de los pa=ses que s
encuentran en , !sia-,
select r,REGION_I< REGION_NO"5RE< *!IS_NO"5RE
from REGIONES r<*!ISES c
!ere r,REGION_I"c,REGION_I /&d REGION_NO"5RE"‘ !sia’;
4. Elabore una consulta que liste el c@digo de la regi@n y nombre de la regi@n< c@digo de la localidad< la ciudad< c@digo de
pa=s y nombre del pa=s< de solamente de las localidades mayores a '011,
select r,REGION_I< REGION_NO"5RE< l,-OC!-I!_I< c,*!IS_I< *!IS_NO"5RE
from -OC!-I!ES l< REGIONES r<*!ISES c
7/24/2019 Ejercicios Resueltos de SQL en ORACLE Con El Esquema HR en ESPAÑOL
http://slidepdf.com/reader/full/ejercicios-resueltos-de-sql-en-oracle-con-el-esquema-hr-en-espanol 4/9
!ere l,*!IS_I"c,*!IS_I
/&d c,REGION_I"r,REGION_I
/&d l,-OC!-I!_I 0 '011;
15. esarrolle una consulta donde muestre el c@digo de regi@n con un alias de Regi@n< el nombre de la regi@n con un
etiqueta Nombre Regi@n< que muestre una cadena string &concatenaci@n) que diga la siguiente ?rase ,C@digo *a=s6 C
Nombre6 Canad ,<C! es el c@digo de pa=s y Canad es el nombre del pa=s con etiqueta *a=s< el c@digo de localiAaci@
con etiqueta -ocaliAaci@n< la direcci@n de calle con etiqueta irecci@n y el c@digo postal con etiqueta ,C@digo *osta
esto a su BeA no deben aparecer c@digo postal que sean nulos,
select a,REGION_I ,Region-< a,REGION_NO"5RE ,Nombre region-< ‘Codigo *ais 6’||b,*!IS_I ||’ Nombre 6’
b,*!IS_NO"5RE ,*ais-< c,-OC!-I!_I ,-ocaliAaci@n-< c,IRECCIONs ,ireccion ,< c,COIGO_*OS.!- ,C@di
*ostal-
from REGIONES a < *!ISES b< -OC!-I!ES c
!ere a,REGION_I " b,REGION_I
/&d b,*!IS_I "c,*!IS_I
/&d c,COIGO_*OS.!- is not null;
11. esarrolle una consulta que muestre el salario promedio de los empleados de los departamentos 31 y ;1,
select /'7(S!-!RIO*
from E"*-E!OS
!ere E*!R.!"EN.O_I in (31<;1*;
12. esarrolle una consulta que muestre el nombre de la regi@n< el nombre del pa=s< el estado de la proBincia< el c@digo dlos empleados que son manager< el nombre y apellido del empleado que es manager de los pa=ses del reino :nido (:+
Estados :nidos de !mFrica &:S)< respectiBamente de los estados de la proBincia de ashington y O?ord,
select REGION_NO"5RE< *!IS_NO"5RE< *RO%INCI!< e,GEREN.E_I< *RI"ER_NO"5RE< !*E--IO
from E"*-E!OS e< E*!R.!"EN.OS d<-OC!-I!ES l<*!ISES c<REGIONES r
!ere e,GEREN.E_I"d,GEREN.E_I
/&d d,-OC!-I!_I"l,-OC!-I!_I
/&d l,*!IS_I"c,*!IS_I
/&d c,REGION_I"r,REGION_I
/&d c,*!IS_I in (‘:+’<’:S’*
/&d *RO%INCI! in(‘ashington’<’O?ord’*;
1#. Realice una consulta que muestre el nombre y apellido de los empleados que trabajan para departamentos que estlocaliAados en pa=ses cuyo nombre comienAa con la letra C< que muestre el nombre del pa=s,
select *RI"ER_NO"5RE||’ ‘|| !*E--IO< *!IS_NO"5RE
from E"*-E!OS e<E*!R.!"EN.OS d< -OC!-I!ES l<*!ISES c
!ere e,E*!R.!"EN.O_I"d,E*!R.!"EN.O_I
/&d d,-OC!-I!_I"l,-OC!-I!_I
/&d l,*!IS_I"c,*!IS_I
/&d *!IS_NO"5RE l89e ‘C’;
1$. esarrolle una consulta que liste en nombre del puesto &.R!5!4O_.I.:-O)< el nombre y apellidos del empleado qu
ocupa ese puesto< cuyo email es JN+OCHH!RK< el '2 de septiembre de 2L;L,
select .R!5!4O_.I.:-O< *RI"ER_NO"5RE||’ ‘|| !*E--IO
from .R!5!4OS j<E"*-E!OS e
!ere j,.R!5!4O_I"e,.R!5!4O_I
/&d email " ‘N+OCHH!R’
/&d 9ECH!_CON.R!.!CION " ‘'2M1LM2L;L’;
1%. Escriba una sola consulta que liste los empleados de los departamentos 21<'1 y ;1 que ?ueron contratados hace mas d
2;1 d=as< que ganan una comisi@n no menor de '1 y cuyo nombre o apellido comienAa con la letra ‘4’,
select *RI"ER_NO"5RE||’ ‘|| !*E--IO
from E"*-E!OS
!ere E*!R.!"EN.O_I in (21<'1<;1*
/&d months_beteen (sysdate<9ECH!_CON.R!.!CION* 08
/&d *ORCEN.!4E_CO"ISION 0" 1,'
/&d (*RI"ER_NO"5RE l89e ‘4’ or !*E--IO l89e ‘4’*;
7/24/2019 Ejercicios Resueltos de SQL en ORACLE Con El Esquema HR en ESPAÑOL
http://slidepdf.com/reader/full/ejercicios-resueltos-de-sql-en-oracle-con-el-esquema-hr-en-espanol 5/9
1. Realice una consulta de muestre el nombre< el apellido y nombre de departamento de los empleados cuyo nDme
tele?@nico tiene c@digo de rea (2( &numero de 2' d=gitos6 3 del rea< del numero y dos puntos)< ecluya los nDmero
tele?@nicos que tienen una longitud di?erente de 2' caracteres,
select *RI"ER_NO"5RE||’ ‘|| !*E--IO< NO"5RE_E*!R.!"EN.O
from E"*-E!OS e<E*!R.!"EN.OS d
!ere e,E*!R.!"EN.O_I"d,E*!R.!"EN.O_I
/&d .E-E9ONO l89e’(2(’
/&d length(.E-E9ONO*:"2';
1. esarrolle una consulta que muestre el c@digo< el nombre y apellido separado por coma con titulo de encabeAad
Nombre Completo< el salario con titulo Salario< el c@digo de departamento con titulo C@digo de epartamento y
nombre de departamento al que pertenece con titulo escripci@n< Dnicamente se desean consultas los que perteneAca
al departamento de I. y ordenar la in?ormaci@n por salario descendentemente,
select e,E"*-E!O_I< *RI"ER_NO"5RE||’<’|| !*E--IO ,Nombre Completo-< S!-!RIO Salar
d,E*!R.!"EN.O_I ,Codigo de epartamento-< NO"5RE_E*!R.!"EN.O escripci@n
from E"*-E!OS e< E*!R.!"EN.OS d
!ere e,E*!R.!"EN.O_I"d,E*!R.!"EN.O_I
/&d NO"5RE_E*!R.!"EN.O"‘I.’
order by S!-!RIO esc;
13. Realice una consulta que liste el nombre y apellido< salario del empleado< el nombre del departamento al que pertenecela direcci@n< el c@digo postal y la ciudad donde est ubicado el departamento< se debe mostrar Dnicamente aquellos qu
sean del departamento 211<;1 y (1 respectiBamente< adems deben pertenecer Dnicamente a la ciudad del sur de sa
?rancisco y el rango de salario debe ser entre 0111 y ;111 incluyendo los Balores limites,
select *RI"ER_NO"5RE< !*E--IO< S!-!RIO< NO"5RE_E*!R.!"EN.O< IRECCIONs< COIGO_*OS.!
CI:!
from E"*-E!OS e<E*!R.!"EN.OS d<-OC!-I!ES l
!ere e,E*!R.!"EN.O_I"d,E*!R.!"EN.O_I
/&d d,-OC!-I!_I"l,-OC!-I!_I
/&d d,E*!R.!"EN.O_I in (211<;1<(1*
/&d CI:! "‘South San 9rancisco’
/&d S!-!RIO beteen 0111 /&d ;111;
14. esarrolle una consulta donde seleccione el c@digo del empleado cuyo alias ser c@digo< el apellido concatenado con
nombre de empleado pero separados por coma&<) cuyo alias ser Nombres< el email donde su inicial este en mayDscula
todos posean el dominio de Peisi,ues,edu,sB< es decir debe ir concatenado con ese dominio cuyo alias es email< adem
que apareAca si el nDmero tele?@nico est almacenado en el campo de esta manera (2(,2'3,0(8 deber conBertirlo
?ormato siguiente ?ormato &(2()Q2'3Q0(8< si posee un nDmero tele?@nico con esta longitud 122,00,2300,0'L'8;< es dec
una longitud mayor al ?ormato anterior< deber aparecer en el ?ormato siguiente &122Q00Q2300Q0'L'8;Q 9unciones qu
puede hacer uso para este ejercicio -ENG.H< S:5S.R, icha in?ormaci@n deber ir ordenada por c@digo de empleado
select E"*-E!O_I Codigo< !*E--IO||’< ‘||*RI"ER_NO"5RE Nombres< Initcap(email*||’Peisi,ues,edu,sB’ ema
‘(‘||substr (.E-E9ONO<2<3*||’* Q ‘||substr (.E-E9ONO<(<3*||’ Q ‘||substr (.E-E9ONO<L<0* .ele?ono
from E"*-E!OS
!ere length(.E-E9ONO*:"2'
:NION
select E"*-E!O_I Codigo< !*E--IO||’< ‘||*RI"ER_NO"5RE Nombres< Initcap(email*||’Peisi,ues,edu,sB’ ema‘(‘||substr (.E-E9ONO<2<3*||’* Q ‘||substr (.E-E9ONO<(<'*||’ Q ‘||substr (.E-E9ONO<;<0*||’ Q ‘||substr (.E-E9ONO<23
.ele?ono
from E"*-E!OS
!ere length(.E-E9ONO*02' order by 2;
25. esarrolle una consulta que permita seleccionar las ciudades< su c@digo de pa=s< y si es de Reino :nido (:nite
+ingdom* lo cambia por (:N+ing* caso contrario si no es de Reino :nido (NonQ :N+ing* y cuya ciudades deben inici
con la letra S,
select CI:!< *!IS_I< (case
hen *!IS_I in ( select *!IS_I
from *!ISES
!ere *!IS_NO"5RE " ‘:nited +ingdom’* then
7/24/2019 Ejercicios Resueltos de SQL en ORACLE Con El Esquema HR en ESPAÑOL
http://slidepdf.com/reader/full/ejercicios-resueltos-de-sql-en-oracle-con-el-esquema-hr-en-espanol 6/9
‘:N+ing’
else ‘NonQ :N+ing’
end* as , :N+ing-
from -OC!-I!ES
!ere CI:! l89e ‘S’;
21. esarrolle una consulta que muestre el c@digo del departamento con titulo C@digo del departamento< que cuente lo
empleados agrupados por departamentos< ordenados por c@digo de departamento;
select E*!R.!"EN.O_I ,Codigo del epartamento-< co<&t()* ,Numero de Empleados-
from E"*-E!OS
7ro<= by E*!R.!"EN.O_I order by ';
22. RealicF una consulta que muestre solo los nombres de los empleados que se repiten,
select *RI"ER_NO"5RE
from E"*-E!OS
7ro<= by *RI"ER_NO"5RE
!/'8&7 co<&t()*02;
2#. esarrolle una consulta que muestre solo los nombres de los empleados que no se repiten,
select *RI"ER_NO"5RE
from E"*-E!OS
7ro<= by *RI"ER_NO"5RE
!/'8&7 co<&t()*"2;
2$. Realice una consulta que muestre el nDmero de pa=ses por regi@n< la consulta debe mostrar el c@digo y nombre de
regi@n as= como el nDmero de pa=ses de cada regi@n< ordenando el resultado por la regi@n que tenga mayor nDmero d
pa=ses,
select r,REGION_I< REGION_NO"5RE< co<&t()*
from REGIONES r< *!ISES c
!ere r,REGION_I"c,REGION_I
7ro<= by r,REGION_I<REGION_NO"5RE order by 3 desc;
2%. esarrolle una consulta que liste los c@digos de puestos con el nDmero de empleados que pertenecen a cada puest
ordenados por nDmero de empleados6 los puestos que tienen ms empleados aparecen primero,
select j,.R!5!4O_I< co<&t()* numerofrom E"*-E!OS e<.R!5!4OS j
!ere e,.R!5!4O_I" j,.R!5!4O_I
7ro<= by j,.R!5!4O_I order by ' desc;
2. esarrolle una consulta que muestre el nDmero de empleados por departamento< ordenados al?abFticamente por nomb
de departamento,
select d,E*!R.!"EN.O_I< NO"5RE_E*!R.!"EN.O< co<&t()*
from E"*-E!OS e<E*!R.!"EN.OS d
!ere e,E*!R.!"EN.O_I"d,E*!R.!"EN.O_I
7ro<= by d,E*!R.!"EN.O_I<NO"5RE_E*!R.!"EN.O
order by NO"5RE_E*!R.!"EN.O;
2. Realice una consulta que muestre el nDmero de departamentos por regi@n,
select r,REGION_I< co<&t()*
from E*!R.!"EN.OS d< -OC!-I!ES l< *!ISES c< REGIONES r
!ere d,-OC!-I!_I"l,-OC!-I!_I
/&d l,*!IS_I"c,*!IS_I
/&d c,REGION_I"r,REGION_I
7ro<= by r,REGION_I
order by 2 asc;
23. Realice una consulta que muestre el salario que paga cada departamento &sin incluir comisi@n)< ordenad
descendentemente por salario pagado, Se mostrara el c@digo y nombre del departamento y el salario que paga,
select d,E*!R.!"EN.O_I< NO"5RE_E*!R.!"EN.O< s<m(S!-!RIO*
7/24/2019 Ejercicios Resueltos de SQL en ORACLE Con El Esquema HR en ESPAÑOL
http://slidepdf.com/reader/full/ejercicios-resueltos-de-sql-en-oracle-con-el-esquema-hr-en-espanol 7/9
from E"*-E!OS e<E*!R.!"EN.OS d
!ere e,E*!R.!"EN.O_I"d,E*!R.!"EN.O_I
7ro<= by d,E*!R.!"EN.O_I<NO"5RE_E*!R.!"EN.O
order by 3 desc;
24. esarrolle una consulta que muestre el ao de contrataci@n< el salario menor< mayor y promedio de todos los empleado
por ao de contrataci@n, Ordene el resultado por ao de contrataci@n6 -os ms recientes primero,
select etract(year from 9ECH!_CON.R!.!CION*< m8&(S!-!RIO*< m/>(S!-!RIO*< /'7(S!-!RIO*
from E"*-E!OS
7ro<= by etract(year from 9ECH!_CON.R!.!CION*
order by 2 desc;
#5. esarrolle una consulta que muestre el c@digo del departamento con titulo ,C@digo del epartamento-< El c@digo d
trabajo con titulo ,*uesto de trabajo- y que cuente los empleados de los departamentos (1 y ;1< ordenado el resultad
por departamento y puesto de trabajo,
select d,E*!R.!"EN.O_I ,Codigo del epartamento-< j,.R!5!4O_I ,*uesto de .rabajo-< co<&t()*
from E*!R.!"EN.OS d<.R!5!4OS j<E"*-E!OS e
!ere e,E*!R.!"EN.O_I"d,E*!R.!"EN.O_I
/&d e,.R!5!4O_I" j,.R!5!4O_I
/&d d,E*!R.!"EN.O_I in ((1<;1*
7ro<= by d,E*!R.!"EN.O_I<j,.R!5!4O_I
order by d,E*!R.!"EN.O_I desc <j,.R!5!4O_I desc;
#1. esarrolle una consulta que liste el c@digo del departamento con titulo TC@digo del departamentoU< el c@digo de traba
con titulo T*uesto de .rabajoU y que cuente los empleados por departamentos y puesto de trabajo< en donde el puesto d
trabajo tenga solamente un empleado en la empresa,
select E*!R.!"EN.O_I ,Codigo del epartamento-< .R!5!4O_I ,*uesto de .rabajo-< co<&t()*
from E"*-E!OS
7ro<= by E*!R.!"EN.O_I<.R!5!4O_I
!/'8&7 co<&t()*"2;
#2. Realice una consulta que liste el nDmero de empleados por ciudad< que ganan como m=nimo (111 en concepto d
salario, Omita las ciudades que tengan menos de 3 empleados con ese salario,
select CI:!< co<&t()*from E"*-E!OS e<E*!R.!"EN.OS d<-OC!-I!ES l
!ere e,E*!R.!"EN.O_I"d,E*!R.!"EN.O_I
/&d d,-OC!-I!_I"l,-OC!-I!_I
/&d S!-!RIO 0"(111
7ro<= by CI:!
!/'8&7 co<&t()*03;
##. Elabore una consulta que muestre el c@digo del departamento con titulo TC@digo del departamentoU< que cuente lo
empleados por departamento de aquellos departamentos que tengan ms de 21 empleados,
select E*!R.!"EN.O_I ,Codigo del epartamento-< co<&t()*
from E"*-E!OS
7ro<= by E*!R.!"EN.O_I
!/'8&7 co<&t()*021;
#$. esarrolle una consulta que liste el apellido< el nombre y salario del empleado con el salario mayor de los todos lo
departamentos,
select !*E--IO< *RI"ER_NO"5RE< S!-!RIO
from E"*-E!OS
!ere S!-!RIO " (select m/>(S!-!RIO* from E"*-E!OS*;
#%. esarrolle una consulta que muestre c@digo de departamento< el nombre y apellido de los empleados de Dnicamente d
los departamentos en donde eisten empleados con nombre J4onhK
select NO"5RE_E*!R.!"EN.O< *RI"ER_NO"5RE< !*E--IO
from E"*-E!OS e<E*!R.!"EN.OS d
7/24/2019 Ejercicios Resueltos de SQL en ORACLE Con El Esquema HR en ESPAÑOL
http://slidepdf.com/reader/full/ejercicios-resueltos-de-sql-en-oracle-con-el-esquema-hr-en-espanol 8/9
!ere e,E*!R.!"EN.O_I"d,E*!R.!"EN.O_I
/&d d,E*!R.!"EN.O_I in (select E*!R.!"EN.O_I from E"*-E!OS !ere *RI"ER_NO"5RE " ‘4ohn’*;
#. esarrolle una consulta que liste el c@digo de departamento< nombre< apellido y salario de Dnicamente de los empleado
con mimo salario en cada departamento,
select E*!R.!"EN.O_I< *RI"ER_NO"5RE< !*E--IO< S!-!RIO
from E"*-E!OS e2
!ere S!-!RIO " (select m/>(S!-!RIO* from E"*-E!OS e' !e
e2,E*!R.!"EN.O_I"e',E*!R.!"EN.O_I*;
#. Elabore una consulta que muestre el c@digo del departamento< el nombre de departamento y el salario mimo de cad
departamento,
select d,E*!R.!"EN.O_I< NO"5RE_E*!R.!"EN.O< S!-!RIO
from E*!R.!"EN.OS d<E"*-E!OS e
!ere e,E*!R.!"EN.O_I"d,E*!R.!"EN.O_I
/&d S!-!RIO"(select m/>(S!-!RIO* from E"*-E!OS e' !e
e,E*!R.!"EN.O_I"e',E*!R.!"EN.O_I*;
#3. Encuentra todos los registros en la tabla empleados que contengan un Balor que ocurre dos Beces en una columna dada
select )
from E"*-E!OS e2
!ere ' " ( select co<&t()* from E"*-E!OS e' !ere e2,E*!R.!"EN.O_I"e',E*!R.!"EN.O_I*;
#4. Realice una consulta que liste los empleados que estn en departamentos que tienen menos de 21 empleados,
select E*!R.!"EN.O_I< *RI"ER_NO"5RE||’ ‘|| !*E--IO
from E"*-E!OS e2
!ere (select co<&t()* from E"*-E!OS e' !ere e2,E*!R.!"EN.O_I"e',E*!R.!"EN.O_I*:21 order b
E*!R.!"EN.O_I;
$5. esarrolle una consulta que muestre el mayor salario entre los empleados que trabajan en el departamento 3
(E*!R.!"EN.O_I* y que empleados ganan ese salario,
select E*!R.!"EN.O_I< *RI"ER_NO"5RE||’ ‘|| !*E--IO< S!-!RIO
from E"*-E!OS
!ere E*!R.!"EN.O_I "31/&d S!-!RIO" (select m/>(S!-!RIO* from E"*-E!OS !ere E*!R.!"EN.O_I"31*;
$1. Elabore una consulta que muestre los departamentos en donde no eista ningDn empleado,
select E*!R.!"EN.O_I< NO"5RE_E*!R.!"EN.O
from E*!R.!"EN.OS d
!ere not eists (select ) from E"*-E!OS e !ere e,E*!R.!"EN.O_I"E*!R.!"EN.O_I*;
$2. esarrolle una consulta que muestre a todos los empleados que no estFn trabaj/&do en el departamento 31 y que gane
ms que todos los empleados que trabajan en el departamento 31,
select *RI"ER_NO"5RE< !*E--IO
from E"*-E!OS
!ere E*!R.!"EN.O_I :0 31/&d S!-!RIO 0 all (select S!-!RIO from E"*-E!OS !ere E*!R.!"EN.O_I"31*;
$#. Realice una consulta que muestre los empleados que son gerentes &GEREN.E_I) y el nDmero de emplead
subordinados a cada uno< ordenados descendentemente por nDmero de subordinado, Ecluya a los gerentes que tiene
( empleados subordinados o menos,
select e2,E"*-E!O_I< e2,*RI"ER_NO"5RE||’ ‘||e2,!*E--IO< co<&t()*
from E"*-E!OS e2<E"*-E!OS e'
!ere e',GEREN.E_I"e2,E"*-E!O_I
/&d e',GEREN.E_I in (select d,GEREN.E_I from E*!R.!"EN.OS d !ere d,GEREN.E_I is not null*
/&d (select co<&t()*
from E"*-E!OS e3< E"*-E!OS e0
!ere e3,GEREN.E_I"e0,E"*-E!O_I
7/24/2019 Ejercicios Resueltos de SQL en ORACLE Con El Esquema HR en ESPAÑOL
http://slidepdf.com/reader/full/ejercicios-resueltos-de-sql-en-oracle-con-el-esquema-hr-en-espanol 9/9
/&d e3,GEREN.E_I"e2,E"*-E!O_I*0(
7ro<= by e2,E"*-E!O_I<e2,*RI"ER_NO"5RE||’ ‘||e2,!*E--IO;
$$. esarrolle una consulta donde muestre el c@digo de empleado< el apellido< salario< nombre de regi@n< nombre de pa=
estado de la proBincia < c@digo de departamento< nombre de departamento donde cumpla las siguientes condiciones6
/. Vue los empleados que seleccione su salario sea mayor al promedio de su departamento,
b. Vue no seleccione los del estado de la proBincia de .eas
c. Vue ordene la in?ormaci@n por c@digo de empleado ascendentemente,
d. Vue no escoja los del departamento de ?inanAas &9inance)
select a,E"*-E!O_I< a,!*E--IO <a,S!-!RIO< b,REGION_NO"5RE < c,*!IS_NO"5RE< d,*RO%INCI
e,E*!R.!"EN.O_I< e,NO"5RE_E*!R.!"EN.O
from E"*-E!OS a< REGIONES b< *!ISES c< -OC!-I!ES d< E*!R.!"EN.OS e
!ere a,E*!R.!"EN.O_I " e,E*!R.!"EN.O_I
/&d e,-OC!-I!_I " d,-OC!-I!_I
/&d d,*!IS_I " c,*!IS_I
/&d c,REGION_I " b,REGION_I
/&d a, S!-!RIO 0 (select /'7(S!-!RIO*
from E"*-E!OS g
!ere a,E*!R.!"EN.O_I " g,E*!R.!"EN.O_I*
/&d d,*RO%INCI! :0 ‘.eas’
/&d e,NO"5RE_E*!R.!"EN.O:0 ‘9inance’
order by a,E"*-E!O_I;