Está en la página 1de 4

Luis Fernando Bermúdez García

academy.oracle.com

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.

ON Clause Permite una unión natural basada en una condición arbitraria o


en dos columnas con nombres diferentes.
USING clause 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.
R:SELECT department_id,department_name, location_id, city
FROM departments JOIN locations USING (location_id)
WHERE 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.
R:SELECT song_id, cd_number, title, comments

FROM d_cds JOIN d_track_listings USING (cd_number) JOIN d_play_list_items USING


(song_id);

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.
R:SELECT city, department_name, location_id, department_id
Copyright © 2019, 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.
Luis Fernando Bermúdez García
FROM departments JOIN locations USING (location_id)
WHERE department_id in (10, 20 , 30) AND city = 'Seattle';
4. Muestre el nombre del país, el ID de región, así como el nombre de región de Americas.
R:SELECT country_name, region_id, region_name
FROM countries JOIN regions USING(region_id)
WHERE region_name = 'Americas';

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 $.

R:SELECT first_name, last_name, hire_date, job_id, job_title, max_salary


FROM employees JOIN jobs USING (job_id)
WHERE 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.

SELECT job_title, first_name, last_name, LOWER(email) , 'somecomname.sometld' as email


FROM employees JOIN jobs USING(job_id)
WHERE job_title = 'Stock Clerk' ;

*En esta ejecucion al momento de correrla en los correos me muestra “somecomname.sometld”,


no se que tenga mal

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.
R:SELECT emp.employee_id AS "employee ID", emp.first_name AS "first name", emp.last_name
"last name", emp.manager_id "manager ID", mgr.first_name "manager first name", mgr.last_name
"manager last name"
FROM employees emp JOIN employees mgr ON emp.manager_id = mgr.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á.
R:SELECT dp.location_id, loc.city, dp.department_name
FROM departments dp INNER JOIN locations loc ON dp.location_id = loc.location_id JOIN
countries ct ON loc.country_id = ct.country_id
WHERE ct.country_name = 'Canada';

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.

R:SELECT emp.manager_id "Employee's Manager ID", emp.department_id "Department ID",


dpt.department_name "Department Name", emp.first_name "First Name", emp.last_name "Last
Copyright © 2019, 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.
Luis Fernando Bermúdez García
Name"
FROM employees emp JOIN departments dpt ON emp.department_id = dpt.department_id
WHERE emp.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.

R:SELECT emp.Employee_id "Employee ID", emp.last_name "Last Name" , emp.department_id


"Department ID", dpt.department_name "Department Name", emp.hire_date "Hire Date"
FROM employees emp JOIN departments dpt ON emp.department_id = dpt.department_id
WHERE emp.hire_date = TO_DATE('June 7, 1994', 'fmMonth DD, YYYY

Copyright © 2019, 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.
Luis Fernando Bermúdez García

Copyright © 2019, 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