0% encontró este documento útil (0 votos)
33 vistas58 páginas

01 SQL Básico Join

Este documento describe diferentes tipos de JOIN en SQL, incluyendo INNER JOIN, OUTER JOIN, CROSS JOIN y SELF JOIN. Explica que los INNER JOIN combinan registros que cumplen con una condición de unión, mientras que los OUTER JOIN también incluyen registros que no cumplen. También describe cómo los CROSS JOIN combinan todos los registros de dos tablas y los SELF JOIN permiten unir una tabla consigo misma.

Cargado por

WolfyCA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
33 vistas58 páginas

01 SQL Básico Join

Este documento describe diferentes tipos de JOIN en SQL, incluyendo INNER JOIN, OUTER JOIN, CROSS JOIN y SELF JOIN. Explica que los INNER JOIN combinan registros que cumplen con una condición de unión, mientras que los OUTER JOIN también incluyen registros que no cumplen. También describe cómo los CROSS JOIN combinan todos los registros de dos tablas y los SELF JOIN permiten unir una tabla consigo misma.

Cargado por

WolfyCA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Diseño de Bases de Datos

SQL Básico- JOIN

---
Tipos de JOINs
ALIAS
• Cuando se consulta una base de datos, los nombres de las columnas
se usan como cabeceras de presentación.
• Si éste resulta demasiado largo, corto o críptico, puede cambiarse con
la misma sentencia SQL de consulta, creando un alias de columna.

• Hay dos tipos de alias que se utilizan con mayor frecuencia: alias de
columna y alias de tabla
• Los alias de columna existen para ayudar en la organización del resultado.
• Los alias de tabla, se colocan alias directamente luego del nombre de tabla en
la cláusula FROM. Esto es conveniente cuando desea obtener información de
dos tablas separadas (JOIN)
Construcción de un Query...
• En la clausula SELECT hay que nombrar todas las columnas que
queremos mostrar

• Cualificar el nombre de la columna si hace falta (alias)

• En la clausula FROM, nombrar todas las tablas afectadas

• Incluir las columnas que se utilizan en la cláusula WHERE (definidas


en el FROM), aún si no se mencionan en la cláusula SELECT
...Construcción de un Query
• Tomar un par de tablas y relacionarlas
• Indicar en la cláusula WHERE, la condición que relaciona las tablas
• Unir (Join) las condiciones con el operador AND
• Incluir cualquier condición adicional en la cláusula WHERE
• Conectarlas con el operador AND
Uniendo (Join) Múltiples Tablas
• Las condiciones muestran como las columnas se relacionan
por cada dos tablas
JOIN
• La sentencia JOIN en SQL permite combinar registros de dos o más
tablas en una base de datos relacional.

• Join – Una operación relacional que causa que dos o más tablas con
un dominio común se combinen en una sola tabla o view
Consideraciones
• Por razones de performance se debe de limitar el número de tablas
utilizados en un join.

• Entre más tablas se utilicen mas tiempo va a tardar en procesar la


información.

• Los join de preferencia deben de estar basados entre la llave primera


y la llave foránea de las tablas.
Tipos de Join
• En el Lenguaje de Consultas Estructurado (SQL), hay diversos tipos de
JOIN, los que abordaremos en esta ocasión están:

• Interno (Inner)
• Externo (Outer)
• Cruzado (Cross)
• A si mismo (Self)
Utilizando este E-R en algunos ejemplo a mostrar

Figura 1
INNER JOIN
Inner Join
• Un inner join se usa cuando se quiera combinar dos tablas que tienen
valores en común en una o más columnas.
• Ejemplo
• Se puede usar un inner join para combinar el número de cliente de la tabla de
empleados con el número de empleado de la tabla de rentas.
• El resultado traería solamente los registros que cumplan con la condición en
las columnas combinadas de ambas tablas.
Ejemplo de Natural Join (Fig 1)

• Por cada cliente que puso una orden, ¿Cuál es su nombre y


el número de la orden?
Join implica dos o más tablas en el FROM

SELECT CUSTOMER_T.CUSTOMER_ID, CUSTOMER_NAME, ORDER_ID


FROM CUSTOMER_T NATURAL JOIN ORDER_T ON

CUSTOMER_T.CUSTOMER_ID = ORDER_T.CUSTOMER_ID;

La cláusula ON ejecuta el cotejo de


igualdad para columnas comunes Nota: En la siguiente figura, se
verá que solo 10 clientes tienen
de las dos tablas.
ordenes emitidas

➔ Sólo 10 filas deben


devolverse de este INNER join.
A continuation se muestran los datos de
CUSTOMER y ORDER
Otro Ejemplo de Natural Join

Nota: Curiosamente no
incluye la directiva ON

Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel
JOIN USING

La cláusula USING permite hacer las conexiones entre


las relaciones de las tablas afectadas

Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel
JOIN ON Clause

Similar al JOIN del libro de texto que se explicó de la fig 8-1. Observe que la cláusula
ON requiere comparar el Primary Key de una tabla contra el Foreign Key de la otra.
Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel
OUTER JOIN
Outer Join
• Un outer join se usa cuando se quiere combinar dos tablas juntas,
pero se quiere que el resultado no solo contenga los registros que se
cumplen con la condición del join, sino también cualquier registro
que no cumpla de una tabla o de las demás.
• Ejemplo
• Se puede usar un outer join para combinar la tabla de clientes con la tabla de
rentas, para poder ver una lista de todos los clientes aunque nunca hayan
rentado una película.
Tipos de Outer Join
• Devuelven no solamente las filas que parean, sino también las filas
con atributos que no parean ya sea de una tabla o de ambas.
• Hay tres tipos:
• Left outer join: Todas las filas de la tabla de la izquierda (la primera que se menciona
en el query) se parean con las filas de la tabla a la derecha. Estas son las que se van a
incluir.

• Right outer join: Todas las filas de la tabla de la derecha (la segunda que se
menciona en el query) se parean con las filas de la tabla a la izquierda. Estas son las
que se van a incluir.

• Full outer join: Todas las filas de ambas tablas se van a incluir independientemente
del pareo.
DE NUEVO CON LA FIGURA 1 QUE MUESTRA LOS
DATOS DE CUSTOMER y ORDER
Ejemplo de Outer Join

• Muestra el nombre del cliente, su ID y el número de la


orden de todos los clientes. Incluye la información del
cliente incluyendo a los que tienen ordenes y también a los
que no.

SELECT CUSTOMER_T.CUSTOMER_ID, CUSTOMER_NAME, ORDER_ID


FROM CUSTOMER_T, LEFT OUTER JOIN ORDER_T
ON CUSTOMER_T.CUSTOMER_ID = ORDER_T.CUSTOMER_ID;

LEFT OUTER JOIN con el ON causa


que la data de los clientes A diferencia del INNER join,
aparesca aún si no hay datos de este SELECT incluirá las filas
ordenes correspondiente de clientes que no tienen filas
de ordenes creadas.
Resultados
JOIN USING Clause

La cláusula USING permite hacer las conexiones entre las


relaciones de las tablas afectadas

Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel
JOIN ON Clause

Observe que la cláusula ON requiere comparar el Primary Key de una


tabla contra el Foreign Key de la otra.

Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel
Otros ejemplos de LEFT, RIGHT y
FULL JOIN
UTILIZANDO ESTA BASE DE DATOS
CON EL SIGUIENTE CONTENIDO EN LAS TABLAS
CUSTOMER
INVOICE
LINE
PRODUCT
VENDOR
Outer Joins - LEFT

No tienen
producto
asignado

Left outer join: Todas las filas de la tabla de la izquierda (la


primera que se menciona en el query) se parean con las filas
de la tabla a la derecha. Estas son las que se van a incluir.
Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel Pag: 338
Outer Joins - RIGHT

Salen las 16 filas de la tabla


PRODUCT

Right outer join: Todas las filas de la tabla de la derecha (la


segunda que se menciona en el query) se parean con las filas
de la tabla a la izquierda. Estas son las que se van a incluir.
Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel
Pag: 339
Outer Joins - FULL

No tienen
producto
asignado

Se incluyen todas

Full outer join: Todas las filas de ambas tablas se van a


incluir independientemente del pareo. Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel
Database
CROSS JOIN
Cross Join
• Un cross join se usa cuando se quieran combinar todos los registros
de una tabla con cada registro de otra tabla.
• Ejemplo:
• Se puede usar un cross join si se quiere una manera rápida de alimentar una
tabla con información.
• Este tipo de joins también se les conoce como producto cartesiano.
Cross Join
• Sintaxis:
• SELECT column-list FROM table1 CROSS JOIN table2
• Ejemplo:
• SELECT * FROM invoice CROSS JOIN line;
• Si la tabla invoice tiene 8 filas y la tabla line tiene 18, el total del
resultado será 144 filas (8 * 18)
Product
• El producto (Cartesian Product) de dos tablas es la combinación de todas
las filas en la primera tabla y todas las filas en la segunda tabla

• Se omite la cláusula WHERE cuando se utiliza PRODUCT


Ejemplo de PRODUCT
SELF JOIN
Self Join
• Un self join se usa cuando quiere combinar una tabla a si misma.
• En casos especiales una tabla puede unirse a sí misma, produciendo
una auto-combinación.
• Ejemplo:
• Se puede usar un self join cuando una columna de una tabla debe referenciar
una columna diferente en la misma tabla.
• El caso clásico de conocer cual es el nombre del jefe de un subalterno, siendo
ambos parte del personal conocido como empleados.
Consideraciones
• Se necesita utilizar los alias para poder utilizarlo

• Se utiliza cuando se comparan registros dentro de una tabla

• El alias permite tratar una tabla como dos tablas separadas


Ejemplo de Self Join

Esto se puede hacer con el Primary key también.


EJERCICIO VARIOS
Tablas de referencia
Inner Join
Theta-join
Equi-JOIN (De equivalencia)
Natural Join
Cross Join (Producto Cartesiano)
Resultado
Left Outer Join
Right Outer Join
Full Outer Join
GRACIAS

También podría gustarte