Está en la página 1de 7

Programación de Bases de Datos con SQL 6-2: Cláusulas de Unión

Actividades de Práctica

Objetivos
• Crear y ejecutar una unión natural utilizando la sintaxis de unión ANSI-99 SQL
• Crear una unión cruzada utilizando la sintaxis de unión ANSI-99 SQL
• Explicar la importancia de tener un estándar para SQL definido por ANSI
• Describir una necesidad de negocio para combinar la información de varios orígenes de datos

Terminología
Identifique el término para cada una de las siguientes definiciones.

USING Permite una unión natural basada en una condición arbitraria o


en dos columnas con nombres diferentes.
INNER JOIN Realiza una unión igualitaria basada en un nombre de columna
especificado

Inténtelo/Resuélvalo

Utilice la base de datos Oracle para los problemas 1-6.

1. Una la tabla de ubicaciones y departamentos de la base de datos Oracle utilizando la columna


location_id. Limite los resultados solo a la ubicación 1400.

SENTENCIA REQUERIDA:

SELECT l.LOCATION_ID, d.DEPARTMENT_ID, d.DEPARTMENT_NAME


FROM DEPARTMENTS d
JOIN LOCATIONS l
ON d.LOCATION_ID = l.LOCATION_ID
WHERE l.LOCATION_ID = 1400;
2. Una las tablas d_play_list_items, d_track_listings y d_cds de DJs on Demand mediante la sintaxis
JOIN USING Incluya el ID de canción, el número de CD, el título y los comentarios en la salida.

SENTENCIA REQUERIDA:

SELECT SONG_ID, CD_NUMBER, TITLE, COMMENTS


FROM D_PLAY_LIST_ITEMS
JOIN D_TRACK_LISTINGS USING (SONG_ID)
JOIN D_CDS USING (CD_NUMBER);
3. Muestre la ciudad, el nombre de departamento, el identificador de ubicación y el identificador de
los departamentos 10, 20 y 30 de la ciudad de Seattle.

SENTENCIA REQUERIDA:

SELECT DISTINCT l.CITY, d.DEPARTMENT_NAME, d.LOCATION_ID, d.DEPARTMENT_ID


FROM LOCATIONS l
JOIN DEPARTMENTS d ON l.LOCATION_ID = d.LOCATION_ID
WHERE l.CITY = 'Seattle' AND d.DEPARTMENT_ID IN (10, 20, 30);

Usamos la clausula DISTINCT para evitar registros duplicados.

4. Muestre el nombre del país, el ID de región, así como el nombre de región de Americas.

DATA NO OTORGADA.

5. Escriba una sentencia que una las tablas employees y jobs. Muestre el nombre y el apellido, la
fecha de contratación, el ID de cargo, el cargo y el salario máximo. Limite la consulta a los
empleados que tienen cargos con los que pueden ganar más de 12.000 $.

SENTENCIA REQUERIDA:

SELECT e.FIRST_NAME, e.LAST_NAME, e.HIRE_DATE, e.JOB_ID, j.JOB_TITLE,


j.MAX_SALARY
FROM EMPLOYEES e
JOIN JOBS j ON e.JOB_ID = j.JOB_ID WHERE j.MAX_SALARY > 12000;
6. Muestre el cargo, el nombre del empleado, el apellido y el correo electrónico de todos los
empleados que son empleados de almacén.

SENTENCIA REQUERIDA:

SELECT j.JOB_TITLE, e.FIRST_NAME, e.LAST_NAME, e.EMAIL


FROM EMPLOYEES e
JOIN JOBS j ON e.JOB_ID = j.JOB_ID
WHERE j.JOB_TITLE IN ('Stock Clerk', 'Stock Manager');
Las siguientes preguntas utilizan la sintaxis JOIN…ON:

7. Escriba una sentencia que muestre el ID de empleado, el nombre, el apellido, el ID de jefe, el


nombre del jefe y el apellido del jefe de todos los empleados de la tabla employees.
Indicación: Se trata de una autounión.

SENTENCIA REQUERIDA:

SELECT e.EMPLOYEE_ID AS EMPLOYEE_ID, e.FIRST_NAME AS EMPLOYEE_FIRST_NAME,


e.LAST_NAME AS EMPLOYEE_LAST_NAME, e.MANAGER_ID AS MANAGER_ID,
m.FIRST_NAME AS MANAGER_FIRST_NAME, m.LAST_NAME AS MANAGER_LAST_NAME
FROM EMPLOYEES e
JOIN EMPLOYEES m ON e.MANAGER_ID = m.EMPLOYEE_ID;

8. Utilice la sintaxis JOIN ON para consultar y mostrar el ID de ubicación, la ciudad y el nombre del
departamento de todas las ubicaciones de Canadá.

DATA NO OTORGADA

9. Consulte y muestre el ID de jefe, el ID de departamento, el nombre de departamento, el nombre y


el apellido de todos los empleados de los departamentos 80, 90, 110 y 190.

SENTENCIA REQUERIDA:

SELECT e.MANAGER:ID, e.DEPARTMENT_ID, d.DEPARTMENT_NAME, e.FIRST_NAME,


e.LAST_NAME
FROM EMPLOYEES e
JOIN DEPARTMENTS d ON e.DEPARTMENT_ID = d.DEPARTMENT_ID
WHERE e.DEPARTMENT_ID IN (80,90,110, 190);

10. Muestre el ID de empleado, el apellido, el ID de departamento, el nombre de departamento y la


fecha de contratación de los empleados cuya fecha de contratación fue el 7 de junio de 1994.

SENTENCIA REQUERIDA:

SELECT e.EMPLOYEE_ID, e.LAST_NAME, e.DEPARTMENT_ID, d.DEPARTMENT_NAME,


e.HIRE_DATE
FROM EMPLOYEES e
JOIN DEPARTMENTS d ON e.DEPARTMENT_ID = d.DEPARTMENT_ID
WHERE TO_DATE(e.HIRE_DATE, 'MM/DD/YYYY') = TO_DATE('06/07/1994', 'MM/DD/YYYY')
;
Copyright © 2020 Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y sus filiales. Todos los demás nombres pueden ser marcas

comerciales de sus respectivos propietarios.

También podría gustarte