SQL Inicial
Sintaxis SQL - Joins
1. Alias
2. Joins
Índice 3. Tipos de Joins
4. Práctica
1 Alias
Alias
Alias de tablas y columnas
Se puede utilizar un alias para abreviar el nombre de una tabla o una
columna, utilizando la instrucción AS
SELECT T1.Columna1, T2.Columna2 as C2
FROM NombreDeLaTabla1 AS T1, NombreDeLaTabla2 AS T2
Data Analytics
Alias
Alias de tablas y columnas
Ejemplos:
SELECT [Link], [Link], [Link]
FROM Compras AS C, Clientes AS Cli
WHERE [Link] = [Link]
SELECT DNI, SUM(Precio) AS PrecioTotal
FROM Compras
WHERE Fecha > “02/01/2017”
GROUP BY DNI
HAVING PrecioTotal >= 70
Data Analytics
2 Joins
Join
Consultas a más de una tabla en una misma consulta
JOIN permite combinar registros de diferentes tablas. En la cláusula ON
debemos establecer la condición por la cual queremos unir la tabla, que
generalmente es algo que tengan ambas en común.
SELECT Columna1, Columna2, ...
FROM NombreDeLaTabla1
JOIN NombreDeLaTabla2, ...
ON condicionDeJoin
Data Analytics
Join
Ejemplo con JOIN
SELECT [Link], [Link], [Link]
FROM Compras AS C Compras Clientes
JOIN Clientes AS Cli SKU (PK) DNI (PK)
ON [Link] = [Link]
DNI (FK) Nombre
Fecha Apellido
Equivalente con Table Reference
SELECT [Link], [Link], [Link]
FROM Compras AS C, Clientes AS Cli
WHERE [Link] = [Link]
Data Analytics
Join
¿Cómo funciona el JOIN?
Al unir dos tablas usando la cláusula JOIN sin especificar
una condición en la cláusula ON, SQL lo que hace es
devolver una nueva tabla con todos los registros
combinados de una con todas las posibles combinaciones
de la otra (producto cartesiano)
Data Analytics
Join
¿Cómo funciona el JOIN?
JOIN genera relaciones entre todas
SELECT [Link], [Link], [Link]
las filas de la tabla Compras con
FROM Compras AS C
todas las filas de la tabla Clientes
JOIN Clientes AS Cli;
SKU DNI Fecha Precio DNI Nombre Apellido
3 33.241.677 03/01/2017 70
33.241.677 Cesar Carroza
4 35.186.928 04/01/2017 40
35.186.928 Mariano Firefox
5 33.241.677 03/01/2017 50
Data Analytics
Join
¿Cómo funciona el JOIN?
Para eliminar las combinaciones que no
SELECT [Link], [Link], [Link]
queremos, ponemos la condición por la
FROM Compras AS C cual queremos que quede el JOIN.
JOIN Clientes AS Cli Esta restricción va en el ON.
ON [Link] = [Link];
SKU DNI Fecha Precio DNI Nombre Apellido
3 33.241.677 03/01/2017 70
33.241.677 Cesar Carroza
4 35.186.928 04/01/2017 40
35.186.928 Mariano Firefox
5 33.241.677 03/01/2017 50
Data Analytics
2 Tipos de Joins
COMBINANDO TABLAS
ㅡ Imaginemos que contamos con un dataset que contiene las siguientes tablas:
Personas y Logros
ㅡ Veamos el contenido de las tablas:
SELECT * FROM Personas;
SELECT * FROM Logros;
Logros
Personas
Data Analytics
DISTINTOS TIPOS DE JOIN
ㅡ Hay varios tipos de operaciones de JOIN.
○ INNER JOIN: Retorna todos los registros donde haya al menos una coincidencia en ambas tablas
○ LEFT JOIN: Retorna todos los registros de la tabla izquierda, y los registros que coincidan de la tabla
derecha
○ RIGHT JOIN: Retorna todos los registros de la tabla derecha, y los registros que coincidan de la tabla
izquierda
○ FULL OUTER JOIN: Retorna todos los registros de ambas tablas aunque no tengan correspondencia
ㅡ Es mucho más fácil entender los JOIN como operaciones
de intersección de conjuntos.
ㅡ Existe una teoría matemáticamente sólida detrás de estas
operaciones llamada Álgebra Relacional.
Data Analytics
DISTINTOS TIPOS DE JOIN
LEFT JOIN
El LEFT JOIN retorna todas las filas de la tabla izquierda (tabla1), con
las filas coincidentes en la tabla derecha (tabla2).
El resultado es NULL en el lado derecho cuando no hay coincidencia .
Sintaxis del Left Join:
SELECT nombres_columnas
FROM tabla1
LEFT JOIN tabla2
ON tabla1.columna_relacion=tabla2.columna_relacion;
Ejemplo para Personas y Logros:
SELECT [Link], [Link]
FROM Personas
LEFT JOIN Logros
ON [Link] = [Link];
Data Analytics
DISTINTOS TIPOS DE JOIN
RIGHT JOIN
De forma similar, el RIGHT JOIN devuelve todas las filas de la tabla derecha
(tabla2), con las filas coincidentes en la tabla de la izquierda (tabla1).
El resultado es NULL del lado izquierdo cuando no hay coincidencia.
Sintaxis del Right Join:
SELECT nombres_columnas
FROM tabla1
RIGHT JOIN tabla2
ON tabla1.columna_relacion=tabla2.columna_relacion;
Ejemplo para Personas y Logros:
SELECT [Link], [Link]
FROM Personas
RIGHT JOIN Logros
ON [Link] = [Link];
Data Analytics
DISTINTOS TIPOS DE JOIN
FULL OUTER JOIN
El FULL OUTER JOIN retorna todas las filas de la tabla de la izquierda
(tabla1) y de la tabla de la derecha (tabla2).
El FULL OUTER JOIN combina el resultado de LEFT y RIGHT JOIN. En este
caso podemos tener valores NULL de ambos lados.
Data Analytics
Ejercicio
Individual
Joins
Ejercicio Individual
Genere el diagrama de entidad relación de
la base de datos Northwind
Data Analytics
Ejercicio Individual
Ingrese al
Workbench y
analice el modelo
ERD de Northwind,
para conocer las
tablas que
usaremos en las
consultas.
Recuerde opción:
Database-> Reverse
Engineer
Data Analytics
Ejercicio Individual
Identificar las tablas y sus relaciones:
- Orders
- Order Details
- Products
- Employees
- Customers
- Order Status
Data Analytics
Ejercicio Individual
Data Analytics
Entendiendo las tablas
CUSTOMERS
ORDERS
Atendido por: Juan
EMPLOYEES
ORDER_ PRODUCTS
DETAILS
Data Analytics
¿CONSULTAS?