CONSULTAS SQL EN ORACLE
William QuimisTrabajo23 de Noviembre de 2016
2.695 Palabras (11 Páginas)2.876 Visitas
CONSULTAS SQL EN ORACLE
Esquema Conceptual HR
[pic 1]
Esquema Físico HR
[pic 2]
- Desarrolle una consulta que liste el nombre del empleado, el código del departamento y la fecha de inicio que empezó a trabajar, ordenando el resultado por departamento y por fecha de inicio, el ultimo que entro a trabajar va de primero.
select PRIMER_NOMBRE, DEPARTAMENTO_ID, FECHA_CONTRATACION
from EMPLEADOS
order by DEPARTAMENTO_ID, FECHA_CONTRATACION desc;
- Desarrolle una consulta que liste el código, nombre y apellido de los empleados y sus respectivos fejes con titulo Empleado y Jefe:
select e1.EMPLEADO_ID||’ ‘||e1.PRIMER_NOMBRE||’ ‘||e1.APELLIDO as Empelado, e2.EMPLEADO_ID||’ ‘||e2.PRIMER_NOMBRE||’ ‘||e2.APELLIDO as Jefe
from EMPLEADOS e1,EMPLEADOS e2
where e1.GERENTE_ID=e2.EMPLEADO_ID;
- Desarrolle una consulta que liste los países por región, los datos que debe mostrar son: el código de la región y nombre de la región con los nombre se sus países.
select r.REGION_ID, REGION_NOMBRE, PAIS_NOMBRE
from REGIONES r, PAISES c
where r.REGION_ID=c.REGION_ID;
- Realice una consulta que muestre el código, nombre, apellido, inicio y fin del historial de trabajo de los empleados.
select e.EMPLEADO_ID, PRIMER_NOMBRE, APELLIDO, FECHA_INICIAL, FECHA_FINAL
from EMPLEADOS e,HISTORIAL_TRABAJO j
where e.EMPLEADO_ID=j.EMPLEADO_ID;
- Elabore una consulta que muestre el nombre y apellido del empleado con titulo Empleado, el salario, porcentaje de comisión, la comisión y salario total.
select PRIMER_NOMBRE||’ ‘||APELLIDO Empleado, SALARIO Salario, PORCENTAJE_COMISION Porcentaje, nvl(PORCENTAJE_COMISION * SALARIO,0) Comision, SALARIO + nvl(PORCENTAJE_COMISION * SALARIO,0) “Salario total”
from EMPLEADOS;
- Elabore una consulta que liste nombre del trabajo y el salario de los empleados que son manager, cuyo código es 100 o 125 y cuyo salario sea mayor de 6000.
select TRABAJO_TITULO, SALARIO
from EMPLEADOS e, TRABAJOS j
where e.TRABAJO_ID=e.TRABAJO_ID
and GERENTE_ID=100 or GERENTE_ID = 125 and SALARIO > 6000;
- Desarrolle una consulta que liste el código de la localidad, la ciudad y el nombre del departamento de únicamente de los que se encuentran fuera de estados unidos (US).
select l.LOCALIDAD_ID, CIUDAD, NOMBRE_DEPARTAMENTO
from DEPARTAMENTOS d,LOCALIDADES l,PAISES c
where d.LOCALIDAD_ID=l.LOCALIDAD_ID
and l.PAIS_ID=c.PAIS_ID
and c.PAIS_ID !=‘US’;
- 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 se encuentran en “Asia”.
select r.REGION_ID, REGION_NOMBRE, PAIS_NOMBRE
from REGIONES r,PAISES c
where r.REGION_ID=c.REGION_ID and REGION_NOMBRE=‘Asia’;
- 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 del país y nombre del país, de solamente de las localidades mayores a 2400.
select r.REGION_ID, REGION_NOMBRE, l.LOCALIDAD_ID, c.PAIS_ID, PAIS_NOMBRE
from LOCALIDADES l, REGIONES r,PAISES c
where l.PAIS_ID=c.PAIS_ID
and c.REGION_ID=r.REGION_ID
and l.LOCALIDAD_ID > 2400;
- Desarrolle una consulta donde muestre el código de región con un alias de Región, el nombre de la región con una etiqueta Nombre Región, que muestre una cadena string (concatenación) que diga la siguiente frase “Código País: CA Nombre: Canadá “,CA es el código de país y Canadá es el nombre del país con etiqueta País, el código de localización con etiqueta Localización, la dirección de calle con etiqueta Dirección y el código postal con etiqueta “Código Postal”, esto a su vez no deben aparecer código postal que sean nulos.
select a.REGION_ID “Region”, a.REGION_NOMBRE “Nombre region”, ‘Codigo Pais :’||b.PAIS_ID ||’ Nombre :’ || b.PAIS_NOMBRE “Pais”, c.LOCALIDAD_ID “Localización”, c.DIRECCIONs “Direccion “, c.CODIGO_POSTAL “Código Postal”
from REGIONES a , PAISES b, LOCALIDADES c
where a.REGION_ID = b.REGION_ID
and b.PAIS_ID =c.PAIS_ID
and c.CODIGO_POSTAL is not null;
- Desarrolle una consulta que muestre el salario promedio de los empleados de los departamentos 30 y 80.
select avg(SALARIO)
from EMPLEADOS
where DEPARTAMENTO_ID in (30,80);
- Desarrolle una consulta que muestre el nombre de la región, el nombre del país, el estado de la provincia, el código de los empleados que son manager, el nombre y apellido del empleado que es manager de los países del reino Unido (UK), Estados Unidos de América (US), respectivamente de los estados de la provincia de Washington y Oxford.
select REGION_NOMBRE, PAIS_NOMBRE, PROVINCIA, e.GERENTE_ID, PRIMER_NOMBRE, APELLIDO
from EMPLEADOS e, DEPARTAMENTOS d,LOCALIDADES l,PAISES c,REGIONES r
where e.GERENTE_ID=d.GERENTE_ID
and d.LOCALIDAD_ID=l.LOCALIDAD_ID
and l.PAIS_ID=c.PAIS_ID
and c.REGION_ID=r.REGION_ID
and c.PAIS_ID in (‘UK’,’US’)
and PROVINCIA in(‘Washington’,’Oxford’);
- Realice una consulta que muestre el nombre y apellido de los empleados que trabajan para departamentos que están localizados en países cuyo nombre comienza con la letra C, que muestre el nombre del país.
select PRIMER_NOMBRE||’ ‘||APELLIDO, PAIS_NOMBRE
from EMPLEADOS e,DEPARTAMENTOS d, LOCALIDADES l,PAISES c
where e.DEPARTAMENTO_ID=d.DEPARTAMENTO_ID
and d.LOCALIDAD_ID=l.LOCALIDAD_ID
and l.PAIS_ID=c.PAIS_ID
and PAIS_NOMBRE like ‘C%’;
- Desarrolle una consulta que liste en nombre del puesto (TRABAJO_TITULO), el nombre y apellidos del empleado que ocupa ese puesto, cuyo email es ‘NKOCHHAR’, el 21 de septiembre de 1989.
select TRABAJO_TITULO, PRIMER_NOMBRE||’ ‘||APELLIDO
from TRABAJOS j,EMPLEADOS e
where j.TRABAJO_ID=e.TRABAJO_ID
and email = ‘NKOCHHAR’
and FECHA_CONTRATACION = ‘21/09/1989’;
- Escriba una sola consulta que liste los empleados de los departamentos 10,20 y 80 que fueron contratados hace mas de 180 días, que ganan una comisión no menor de 20% y cuyo nombre o apellido comienza con la letra ‘J’.
select PRIMER_NOMBRE||’ ‘||APELLIDO
from EMPLEADOS
where DEPARTAMENTO_ID in (10,20,80)
and months_between (sysdate,FECHA_CONTRATACION) >6
...