Está en la página 1de 2

LABORATORIO: Practica Subconsultas y Trabajar con Múltiples Tablas

Ahora vamos a practicar subconsultas y a trabajar con múltiples tablas. Utiliza las
tablas de EMPLOYEES (“EMPLEADOS”) y DEPARTMENTS (“DEPARTAMENTOS”) que hemos creado
previamente y ejecuta las consultas de las dos últimas lecciones.

Aquí están las consultas para ahorrarte algo de tiempo al teclearlas. Por favor,
ejecuta estas consultas y verifica los resultados:

Parte A: Subconsultas y Selecciones Anidadas

Consulta A1: Introduce un fallo (es decir, que dé un error) para obtener todos los
empleados cuyo salario sea mayor que el salario medio

Select for all Queries * from employees where salary > AVG(salary)

Consulta A2: Introduce una consulta que funcione utilizando un subselect para
obtener todos los empleados cuyo salario sea mayor que el salario medio

Select for all Queries EMP_ID, F_NAME, L_NAME, SALARY from employees where SALARY >
(select AVG(SALARY) from employees);

Consulta A3: Introduce una consulta que dé fallo (es decir, que dé un error) que
obtenga todos los registros de los empleados y el salario medio en cada fila

Select for all Queries EMP_ID, SALARY, AVG(SALARY) AS AVG_SALARY from employees ;

Consulta A4: Introduce una Expresión de Columna que obtenga todos los registros de
los empleados y el salario medio en cada fila

Select for all Queries EMP_ID, SALARY, ( select AVG(SALARY) from employees ) AS
AVG_SALARY from employees ;

Consulta A5: Introduce una Expresión de Tabla que obtenga sólo las columnas con
datos no confidenciales del empleado

Select for all Queries * from ( select EMP_ID, F_NAME, L_NAME, DEP_ID from
employees) AS EMP4ALL ;

Parte B: Acceso a Múltiples Tablas con Subconsultas

Consulta B1: Obtén sólo los registros de EMPLOYEES (“EMPLEADOS”) que correspondan a
los departamentos que hay en la tabla DEPARTMENTS (“DEPARTAMENTOS”)

Select for all Queries * from employees where DEP_ID IN ( select DEPT_ID_DEP from
departments );

Consulta B2: Obtén sólo la lista de empleados de la ubicación L0002

Select for all Queries * from employees where DEP_ID IN ( select DEPT_ID_DEP from
departments where LOC_ID = 'L0002' );
Consulta B3: Obtén el ID del departamento y el nombre de los empleados que ganan
más de 70.000 dólares.

Select for all Queries DEPT_ID_DEP, DEP_NAME from departments where DEPT_ID_DEP IN
( select DEP_ID from employees where SALARY > 70000 ) ;

Consulta B4: Especifica 2 tablas en la cláusula FROM

Select for all Queries * from employees, departments;

Acceso a Múltiples Tablas con Joins Implícitos

Consulta B5: Obtén sólo los registros de EMPLOYEES (“EMPLEADOS”) que correspondan a
los departamentos que hay en la tabla DEPARTMENTS (“DEPARTAMENTOS”)

Select for all Queries * from employees, departments where employees.DEP_ID =


departments.DEPT_ID_DEP;

Consulta B6: Utiliza alias más cortos para los nombres de las tablas

Select for all Queries * from employees E, departments D where E.DEP_ID =


D.DEPT_ID_DEP;

Consulta B7: Obtén sólo el ID de Empleado y el nombre del Departamento de la


consulta anterior

Select for all Queries EMP_ID, DEP_NAME from employees E, departments D where
E.DEP_ID = D.DEPT_ID_DEP;

Consulta B8: En la consulta anterior, especifica los nombres de las columnas


debidamente identificados con alias en la cláusula SELECT

Select for all Queries E.EMP_ID, D.DEP_NAME from employees E, departments D where
E.DEP_ID = D.DEPT_ID_DEP

También podría gustarte