Upload
emmanuel-ortiz-gutierrez
View
86
Download
2
Embed Size (px)
Citation preview
Programación SQL Lección 7
Visualización de datosdesde varias tablas Usando JOIN
SQL Fundamentals I
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
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
La obtención de datos de varias tablas
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
Utilice JOIN para consultar los datos de más de una tabla:
Joins a las Tablas Usando SQL: sintaxis 1999
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
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
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
Obtener registros con NATURAL JOIN
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
Joining nombres de columna
Obtener registros con la cláusula USING
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
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
Obtener registros con la cláusula ON
Creación de Three-Way Joins con la cláusula ON
Utilice la cláusula AND o la cláusula WHERE para aplicar condiciones adicionales :
La aplicación de condiciones adicionales a un JOIN
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
JOIN de una tabla consigo misma
Self-Joins usando cláusula ON
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
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
Recuperación de Registros con Nonequijoins
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
Retornar registros sin macheo directo usando combinaciones externas
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
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL OUTER JOIN
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
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
Generación de un producto cartesiano
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
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
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
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
¿Preguntas?
Emmanuel OrtizConsultor [email protected] / gtalkemmanueltizSkype