Curso SQL - Leccion 7

40
Programación SQL Lección 7

Transcript of Curso SQL - Leccion 7

Page 1: Curso SQL - Leccion 7

Programación SQL Lección 7

Page 2: Curso SQL - Leccion 7

Visualización de datosdesde varias tablas Usando JOIN

SQL Fundamentals I

Page 3: Curso SQL - Leccion 7

Después de completar esta lección, usted debería ser capaz de hacer lo siguiente:

Escribir declaraciones SELECT para acceder a los datos de más de una tabla utilizando equijoins y nonequijoins

Unir a una tabla a sí misma mediante el uso de un self-join

Ver datos que generalmente no responde a una condición de join por utilizando OUTER joins

Generar un producto cartesiano de todas las filas de dos o más tablas

Objetivos

Page 4: Curso SQL - Leccion 7

Tipos de JOINS y su sintaxis NATURAL JOIN JOIN con la cláusula USING JOIN con la cláusula ON Self-join Nonequijoins OUTER join::

◦LEFT OUTER join◦RIGHT OUTER join◦FULL OUTER join

Producto cartesiano◦Cross join

Agenda

Page 5: Curso SQL - Leccion 7

La obtención de datos de varias tablas

Page 6: Curso SQL - Leccion 7

Los Joins que son compatibles con el estándar SQL: 1999 incluye la siguiente: Join Naturales con la cláusula JOIN NATURAL Join con la cláusula de USING Join con la cláusula ON OUTER joins:

◦ LEFT OUTER JOIN◦ RIGHT OUTER JOIN◦ FULL OUTER JOIN

Cross joins

Tipos de Joins

Page 7: Curso SQL - Leccion 7

Utilice JOIN para consultar los datos de más de una tabla:

Joins a las Tablas Usando SQL: sintaxis 1999

Page 8: Curso SQL - Leccion 7

Utilice prefijos de tabla para calificar los nombres de columna que se encuentran en varias tablas.

Utilice prefijos de tabla para mejorar el rendimiento.

En lugar de utilizar nombres completos de la tabla, utilizar alias de tabla.

Tabla de alias da una tabla un nombre más corto:◦ Mantiene código SQL más pequeño, utiliza menos

memoria Utilice los alias de columna para distinguir

columnas que tienen nombres idénticos, pero residen en diferentes tablas.

Clasificación nombres de columna ambiguas

Page 9: Curso SQL - Leccion 7

Tipos de JOINS y su sintaxis NATURAL JOIN JOIN con la cláusula USING JOIN con la cláusula ON Self-join Nonequijoins OUTER join::

◦LEFT OUTER join◦RIGHT OUTER join◦FULL OUTER join

Producto cartesiano◦Cross join

Agenda

Page 10: Curso SQL - Leccion 7

La cláusula NATURAL JOIN se basa en todas las columnas las dos tablas que tienen el mismo nombre.

Selecciona las filas de las dos tablas que tienen valores iguales en todas las columnas coincidentes.

Si las columnas que tienen los mismos nombres tienen diferentes datos tipos, se devuelve un error.

Crear Natural JOIN

Page 11: Curso SQL - Leccion 7

Obtener registros con NATURAL JOIN

Page 12: Curso SQL - Leccion 7

Si hay varias columnas tienen los mismos nombres, pero los datos tipos no coinciden, utilice la cláusula USING para especificar el columnas para el equijoin.

Utilice la cláusula USING para que coincida con una sola columna cuando más de una columna coincide.

El NATURAL JOIN y cláusulas USING son mutuamente exclusiva.

Creando JOINS con la cláusula USING

Page 13: Curso SQL - Leccion 7

Joining nombres de columna

Page 14: Curso SQL - Leccion 7

Obtener registros con la cláusula USING

Page 15: Curso SQL - Leccion 7

No calificar una columna que se utiliza en la cláusula USING.

Si la misma columna se utiliza en otras partes del SQL declaración, no usar un alias.

Alias de tablas con la Cláusula USING

Page 16: Curso SQL - Leccion 7

La condición de JOIN para un NATUAL JOIN es básicamente un equijoin de todas las columnas con el mismo nombre.

Utilice la cláusula ON para especificar las condiciones arbitrarias o especificar columnas a realizar el JON.

La condición de JOIN se separa de otra búsqueda condiciones.

La cláusula ON hace que el código fácil de entender.

Creación de JOIN con la cláusula ON

Page 17: Curso SQL - Leccion 7

Obtener registros con la cláusula ON

Page 18: Curso SQL - Leccion 7

Creación de Three-Way Joins con la cláusula ON

Page 19: Curso SQL - Leccion 7

Utilice la cláusula AND o la cláusula WHERE para aplicar condiciones adicionales :

La aplicación de condiciones adicionales a un JOIN

Page 20: Curso SQL - Leccion 7

Tipos de JOINS y su sintaxis NATURAL JOIN JOIN con la cláusula USING JOIN con la cláusula ON Self-join Nonequijoins OUTER join::

◦LEFT OUTER join◦RIGHT OUTER join◦FULL OUTER join

Producto cartesiano◦Cross join

Agenda

Page 21: Curso SQL - Leccion 7

JOIN de una tabla consigo misma

Page 22: Curso SQL - Leccion 7

Self-Joins usando cláusula ON

Page 23: Curso SQL - Leccion 7

Tipos de JOINS y su sintaxis NATURAL JOIN JOIN con la cláusula USING JOIN con la cláusula ON Self-join Nonequijoins OUTER join::

◦LEFT OUTER join◦RIGHT OUTER join◦FULL OUTER join

Producto cartesiano◦Cross join

Agenda

Page 24: Curso SQL - Leccion 7

La tabla JOB_GRADES define el LOWEST_SAL y HIGHEST_SAL que son la gama de valores para cada GRADE_LEVEL. Por lo tanto, la columna puede GRADE_LEVEL se utilizará para asignar calificaciones a cada los empleados

Nonequijoins

Page 25: Curso SQL - Leccion 7

Recuperación de Registros con Nonequijoins

Page 26: Curso SQL - Leccion 7

Tipos de JOINS y su sintaxis NATURAL JOIN JOIN con la cláusula USING JOIN con la cláusula ON Self-join Nonequijoins OUTER join::

◦LEFT OUTER join◦RIGHT OUTER join◦FULL OUTER join

Producto cartesiano◦Cross join

Agenda

Page 27: Curso SQL - Leccion 7

Retornar registros sin macheo directo usando combinaciones externas

Page 28: Curso SQL - Leccion 7

En SQL: 1999, la unión de dos tablas devolviendo sólo acertaron filas se denomina INNER join.

Una combinación entre dos tablas que devuelve los resultados del INNER join así como las filas no coincidentes de la izquierda (o derecha) tabla se llama a la izquierda (o derecha) OUTER join.

Un JOIN entre dos tablas que devuelve los resultados de un INNER join, así como los resultados de la izquierda y la derecha se unen es una completa OUTER join.

INNER Versus OUTER JOINs

Page 29: Curso SQL - Leccion 7

LEFT OUTER JOIN

Page 30: Curso SQL - Leccion 7

RIGHT OUTER JOIN

Page 31: Curso SQL - Leccion 7

FULL OUTER JOIN

Page 32: Curso SQL - Leccion 7

Tipos de JOINS y su sintaxis NATURAL JOIN JOIN con la cláusula USING JOIN con la cláusula ON Self-join Nonequijoins OUTER join::

◦LEFT OUTER join◦RIGHT OUTER join◦FULL OUTER join

Producto cartesiano◦Cross join

Agenda

Page 33: Curso SQL - Leccion 7

Un producto cartesiano se forma cuando:◦ Una condición de JOIN se omite◦ Una condición de JOIN no es válido◦ Todas las filas de la primera tabla se unen a todas

las filas en el segunda tabla Incluya siempre una condición de unión

válida si se quiere evitar un Producto cartesiano.

Productos cartesianos

Page 34: Curso SQL - Leccion 7

Generación de un producto cartesiano

Page 35: Curso SQL - Leccion 7

La cláusula CROSS JOIN produce el producto cruzado de dos tablas.

Esto también se llama un producto cartesiano entre los dos tablas.

Crear Cross Joins

Page 36: Curso SQL - Leccion 7

El estándar SQL:1999 agrega soporte de sintaxis a los siguientes tipos de JOINS. Cuales seis de esos JOINS ORACLE fue quien le dio la sintaxis para el soporte?a. Equijoinsb. Nonequijoinsc. LEFT OUTER JOINd. Right OUTER joine. Full OUTER joinf. Self joinsg. Natural Joinsh. Cartesian products

Examen

Page 37: Curso SQL - Leccion 7

En esta lección, debe haber aprendido a utilizar JOINS para mostrar los datos de varias tablas mediante el uso de: Equijoins Nonequijoins OUTER joins Self-joins Cross joins Natural joins Full (or two-sided) OUTER joins

Resumen

Page 38: Curso SQL - Leccion 7

Esta práctica se abordan los siguientes temas: JOINS a tablas utilizando un equijoin Realizar outer y self-joins Agregar condiciones

Práctica 7: Información general

Page 39: Curso SQL - Leccion 7

¿Preguntas?

Page 40: Curso SQL - Leccion 7

Emmanuel OrtizConsultor [email protected]  / gtalkemmanueltizSkype