TIPOS DE JOIN EN T-SQL.pptx

39
TIPOS DE JOIN EN T-SQL Y COMO USARLOS En SQL tenemos tipos de Join que funcionarán en Transact, propio de MS SQL Server, y que sólo cambian ciertas partes de la sintaxis para los demás lenguajes ojo todos al final hacen lo mismo, las bases son iguales, tenemos 2 tipos de Join (por definición al menos) los Joins Internos o de Combinación interna (Inner Join) y los Joins Externos o Combinación externa (Outer Join) que a su vez tienen sus diferencias dentro de cada uno de

Transcript of TIPOS DE JOIN EN T-SQL.pptx

Page 1: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

En SQL tenemos tipos de Join que funcionarán en Transact, propio de MS SQL Server, y que sólo cambian ciertas partes de la sintaxis para los demás lenguajes ojo todos al final hacen lo mismo, las bases son iguales, tenemos 2 tipos de Join (por definición al menos) los Joins Internos o de Combinación interna (Inner Join) y los Joins Externos o Combinación externa (Outer Join) que a su vez tienen sus diferencias dentro de cada uno de ellos.

Page 2: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Tipos de Join:

1. Internos (Inner Join)

De Equivalencia (Equi – Join) Natural (Natural – Join) Cruzado (Cross – Join) En sí mismo (Self – Join)

2. Externos (Outer Join)

De tabla Izquierda (Left Outer Join) De tabla Derecha (Right Outer Join) Combinación completa (Full Outer Join)

Page 3: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Creamos las tablas en nuestra Query de SQL Management Studio en una Base de datos que hayas creado.

- Tabla1 (IdLetra, Valor1)- Tabla2 (IdLetra, Valor2)- Tabla3 (IdLetra, Valor3)- Tabla4 (IdLetra, Valor4)

Page 4: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

CREATE TABLE Tabla1 (IdLetra varchar(5), Valor1 int)

CREATE TABLE Tabla2 (IdLetra varchar(5), Valor2 int)

CREATE TABLE Tabla3 (IdLetra varchar(5), Valor3 int)

CREATE TABLE Tabla4 (IdLetra varchar(5), Valor4 int)

Page 5: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

INSERT INTO TABLA1 VALUES ('A',1)INSERT INTO TABLA1 VALUES ('B',2)INSERT INTO TABLA1 VALUES ('C',3)INSERT INTO TABLA1 VALUES ('D',4)INSERT INTO TABLA1 VALUES ('E',5)INSERT INTO TABLA1 VALUES ('F',6)

INSERT INTO TABLA2 VALUES ('A',10)INSERT INTO TABLA2 VALUES ('B',20)INSERT INTO TABLA2 VALUES ('C',30)INSERT INTO TABLA2 VALUES ('D',40)INSERT INTO TABLA2 VALUES ('E',50)INSERT INTO TABLA2 VALUES ('F',60)

Page 6: TIPOS DE JOIN EN T-SQL.pptx

INSERT INTO TABLA3 VALUES ('A',7)INSERT INTO TABLA3 VALUES ('B',8)INSERT INTO TABLA3 VALUES ('C',9)

INSERT INTO TABLA3 VALUES ('D',10)INSERT INTO TABLA3 VALUES ('E',11)INSERT INTO TABLA3 VALUES ('F',100)INSERT INTO TABLA3 VALUES ('G',200)

INSERT INTO TABLA4 VALUES ('A',12)INSERT INTO TABLA4 VALUES ('B',13)INSERT INTO TABLA4 VALUES ('C',14)INSERT INTO TABLA4 VALUES ('D',15)INSERT INTO TABLA4 VALUES ('E',16)

INSERT INTO TABLA4 VALUES ('H',300)INSERT INTO TABLA4 VALUES ('I',400)

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Page 7: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

El Inner Join te permite combinar dos tablas mediante un campo en común para hacer relaciones y consultas en este ejemplo vamos a utilizar un Inner Join para unir las tablas 1 y 2, Funciona así:

SELECT tabla.(campo que quieres mostrar) FROM Tabla1 (Alias -opcional-) INNER JOIN Tabla2 (Alias – opcional-) ON Tabla1(o Alias).NombreCampo(campo en común) <,>,= (comparación) Tabla2(o Alias).NombreCampo(campo en común)

INNER JOIN

Page 8: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

INNER JOINInner Join Tabla 1 y Tabla2 ()

SELECT * FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.IdLetra = Tabla2.IdLetra

Page 9: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

De Equivalencia (Equi-Join)

En este tipo es una especie de theta-join donde se hace una comparación de Igualdad por lo tanto si el inner join es comparado con < , > estos no entrarían en esta categoría

Page 10: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

De Equivalencia (Equi-Join)

SELECT * FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.IdLetra=Tabla2.IdLetra

Page 11: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Natural (Natural-Join)

Propiamente en T-SQL no se puede hacer Natural Join pero es simple de explicar, el Natural Join te da los valores y elimina los campos repetidos en la relación establecida

Page 12: TIPOS DE JOIN EN T-SQL.pptx

SELECT T1.IdLetra ,T1.Valor1, T2.Valor2 FROM Tabla1 T1 INNER JOIN Tabla2 T2 ON T1.IdLetra =T2.IdLetra

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Natural (Natural-Join)

Page 13: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Cruzado (Cross-Join)

El Cross Join nos permite hacer un producto cartesiano entre las tablas que estamos comparando, también se puede dar de manera Implícita lo que llaman el operador proyección, al final funcionan igual:

Page 14: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Cruzado (Cross-Join)

---CROSS JOIN NORMALSELECT * FROM Tabla1 CROSS JOIN Tabla2SELECT Tabla1.IdLetra,Tabla1.Valor1,Tabla2.Valor2 FROM Tabla1 CROSS JOIN Tabla2

---CROSS JOIN IMPLICITOSELECT * FROM Tabla1 ,Tabla2SELECT Tabla1.IdLetra,Tabla1.Valor1,Tabla2.Valor2 from Tabla1,Tabla2

Page 15: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

A sí misma (Self-Join)

Este es un tipo un tanto raro de Join pero quien sabe la necesidad de tus consultas y necesites implementarla en una, esta te permite hacer un producto cartesiano de la tabla pero consigo misma osea un Auto Cross Join:

Page 16: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

A sí misma (Self-Join)

SELECT * FROM Tabla1 SELF JOIN Tabla1 ON Tabla1.IdLetra=Tabla1.IdLetra

Page 17: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

OUTER JOIN

En el Outer Join la diferencia es que en este tipo de combinación se mantienen los valores que no tienen equivalente en la otra tabla, esto no sucede en el Inner Join que cuando las tablas no tienen valores equivalentes la relación botaría NULL en el resultado y este es omitido por defecto

Page 18: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

OUTER JOIN

SELECT * FROM Tabla3 INNER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

Como verás los valores sin equivalente son omitidos

Page 19: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

De Tabla Izquierda (Left Outer Join)

El Left Outer Join nos permite hacer una mezcla y conservar todos los valores de la tabla izquierda (la primera tabla que se menciona en la consulta) sin importar que no tengan equivalente con la de la derecha, veamos el ejemplo:

Page 20: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

De Tabla Izquierda (Left Outer Join)

SELECT * FROM Tabla3 LEFT OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

Page 21: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

De Tabla Derecha (Left Outer Join)

El Right Outer Join nos permite hacer una mezcla y conservar todos los valores de la tabla derecha (la segunda tabla que se menciona en la consulta) sin importar que no tengan equivalente con la primera, el caso contrario como ven, vamos al ejemplo:

Page 22: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

De Tabla Derecha (Left Outer Join)

SELECT * FROM Tabla3 RIGHT OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

Page 23: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Combinación Completa (Full Outer Join)

Con esta última nos permitirá hacer una mezcla total y conservar todos los valores de ambas tablas, los valores que no tengan equivalencia aparecerán acompañados de un Null y se muestran todos ellos, ejemplo:

Page 24: TIPOS DE JOIN EN T-SQL.pptx

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Combinación Completa (Full Outer Join)

SELECT * FROM Tabla3 FULL OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

Page 25: TIPOS DE JOIN EN T-SQL.pptx

TABLA 1 TABLA 2

TABLA 3 TABLA 4

Page 26: TIPOS DE JOIN EN T-SQL.pptx

SELECT * FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.IdLetra = Tabla2.IdLetra

INNER JOIN

Page 27: TIPOS DE JOIN EN T-SQL.pptx

INNER JOINSELECT * FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.IdLetra = Tabla2.IdLetra WHERE Tabla2.Valor2>=30

Page 28: TIPOS DE JOIN EN T-SQL.pptx

SELECT * FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.IdLetra=Tabla2.IdLetra

De Equivalencia (Equi-Join)

Page 29: TIPOS DE JOIN EN T-SQL.pptx

SELECT T1.IdLetra ,T1.Valor1, T2.Valor2 FROM Tabla1 T1 INNER JOIN Tabla2 T2 ON T1.IdLetra =T2.IdLetra

Natural (Natural-Join)

Page 30: TIPOS DE JOIN EN T-SQL.pptx

Cruzado (Cross-Join)

---CROSS JOIN NORMALSELECT * FROM Tabla1 CROSS JOIN Tabla2SELECT Tabla1.IdLetra,Tabla1.Valor1,Tabla2.Valor2 FROM Tabla1 CROSS JOIN Tabla2

Page 31: TIPOS DE JOIN EN T-SQL.pptx
Page 32: TIPOS DE JOIN EN T-SQL.pptx

---CROSS JOIN IMPLICITOSELECT * FROM Tabla1 ,Tabla2SELECT Tabla1.IdLetra,Tabla1.Valor1,Tabla2.Valor2 from Tabla1,Tabla2

Cruzado (Cross-Join)

Page 33: TIPOS DE JOIN EN T-SQL.pptx
Page 34: TIPOS DE JOIN EN T-SQL.pptx

A sí misma (Self-Join)SELECT * FROM Tabla1 SELF JOIN Tabla1 ON Tabla1.IdLetra=Tabla1.IdLetra

Page 35: TIPOS DE JOIN EN T-SQL.pptx
Page 36: TIPOS DE JOIN EN T-SQL.pptx

OUTER JOIN

SELECT * FROM Tabla3 INNER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

Como verás los valores sin equivalente son omitidos

Page 37: TIPOS DE JOIN EN T-SQL.pptx

De Tabla Izquierda (Left Outer Join)

SELECT * FROM Tabla3 LEFT OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

Page 38: TIPOS DE JOIN EN T-SQL.pptx

De Tabla Derecha (Left Outer Join)

SELECT * FROM Tabla3 RIGHT OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

Page 39: TIPOS DE JOIN EN T-SQL.pptx

Combinación Completa (Full Outer Join)

SELECT * FROM Tabla3 FULL OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra