Sei sulla pagina 1di 5

JOIN en SQL sirve para combinar filas de dos o más tablas basándose en un campo común

entre ellas, devolviendo por tanto datos de diferentes tablas. Se produce un listado de datos
que proviene de las tablas que se han considerado unirlas.

CARACTERÍSTICAS

 Combina horizontalmente los datos de varias tablas.


 La combinación de datos se puede decir que es como una concatenación de datos de
dos o más tablas que tengan un campo común.
 Se pueden realizar combinaciones de datos de 2 tipos:
 Combinación Interna
 Combinación Externa

TIPOS DE JOIN

 Las combinaciones de Join son de dos tipos:


 COMBINACIONES INTERNAS: Son operaciones que relaciona dos o más tablas
para obtener un resultado que incluya datos (campos y registros) de ambas
tablas
COMBINACIÓN INTERNA (INNER JOIN) (JOIN)
Tanto Join como Inner Join son iguales muestran el producto cartesiano solo
de los datos que tiene coincidencia en ON.

Ejemplo:
SELECT * FROM Deportistas
JOIN Deporte
ON Deportistas.idDeporte = Deporte.idDeporte

SELECT * FROM Deportistas D


JOIN Deportes E
ON D.idDeporte = E.idDeporte
SELECT * FROM Deportistas D
INNER JOIN Deportes E ON D.idDeporte = E.idDeporte
INNER JOIN Deportes P ON D.idHobby = P.idDeporte

 COMBINACIONES EXTERNAS: Son Operaciones que estando relacionadas se


van a mostrar los datos externos a la coincidencia, sea de la primera tabla
(Left) o de la segunda tabla (Right).

COMBINACIÓN EXTERNA (LEFT JOIN)

SELECT * FROM Deportistas D


LEFT JOIN Deportes E ON D.idDeporte = E.idDeporte

SELECT * FROM Deportistas D


RIGHT JOIN Deportes E ON D.idDeporte = E.idDeporte
COMBINACIÓN EXTERNA (FULL JOIN)

SELECT * FROM Deportistas D FULL JOIN Deportes E ON D.idDeporte = E.idDeporte

CONSULTAS UNIDAS (OPERADOR UNION)

 Se puede unir varias consultas (SELECT) a través de un operador llamado UNION.


 El objetivo de esta unión es combinar los resultados de las consultas en un solo
resultado.
 El número y orden de las columnas debe ser el mismo en todas las consultas
 Debe tenerse en cuenta que el tipo de datos en las columnas deben ser compatibles.
 Las filas duplicadas por defecto son retiradas del resultado del uso de UNION.

EJEMPLO:

SELECT * FROM Deportistas


WHERE edad < 20
UNION
SELECT * FROM Deportistas
WHERE genero = 'M

CONSULTAS UNIDAS (UNION ALL)


 El operador ALL junto a UNION permiten que los resultados muestren registros
duplicados.
 La razón de la duplicidad es que proviene de cada SELECT unido.
 ALL indica al sistema que muestre la lista generada por cada SELECT
 Se mantiene las restricciones de uso de UNION.
SELECT * FROM Deportistas WHERE edad < 20
UNION ALL
SELECT * FROM Deportistas WHERE genero = 'M
OPERADOR EXCEPT

 Devuelve filas distintas al comparar los resultados de dos consultas.


 EXCEPT devuelve filas distintas de la consulta de entrada izquierda que no son de
salida en la consulta de entrada derecha.
 Se debe considerar lo siguiente:
- El número y el orden de las columnas debe ser el mismo en todas las consultas.
- Los tipos de datos deben ser compatibles.
Ejemplo:
- Mostrar los deportistas con edad menor a 20 años exceptuando los de género
masculino.
SELECT * FROM Deportistas WHERE edad < 20
EXCEPT
SELECT * FROM Deportistas WHERE genero = 'M'

OPERADOR INTERSECT

 Devuelve en forma conjunta los valores distintos devueltos por cada consulta SELECT
situada a los lados izquierdo y derecho del operador INTERSECT.
 Considerar las siguientes reglas básicas:
- El número y el orden de las columnas debe ser el mismo en todas las consultas.
- Los tipos de datos deben ser compatibles.

Ejemplo:
- Mostrar los deportistas con edad menor a 20 años que coincidan con los de
género masculino.
SELECT * FROM Deportistas WHERE edad < 20
INTERSECT
SELECT * FROM Deportistas WHERE genero = 'M'

 Una sub consulta es una consulta anidada en una instrucción:


- SELECT, INSERT, UPDATE, DELETE
- otra sub consulta.
 Las sub consultas se pueden utilizar en cualquier parte en la que se permita una
expresión.
 Las sub consultas por lo general devuelven listas o valores escalares
 Una sub consulta se puede anidar dentro de una clausula WHERE o HAVING
 Una sub consulta anidada en la instrucción externa SELECT tiene los componentes
siguientes:
- Una consulta SELECT normal, que incluye los componentes normales de la lista de
selección.
- Una cláusula normal FROM que incluye uno o varios nombres de tablas o vistas.
- Una cláusula opcional WHERE.
- Una cláusula opcional GROUP BY.
- Una cláusula opcional HAVING.
 Las sub consultas deben estar entre paréntesis.

Ejemplo:
Mostrar los datos de los deportistas que practican alguna modalidad de fútbol registrado en la
tabla Deportes:
SELECT * FROM Deportistas
WHERE idDeporte IN (
SELECT idDeporte FROM Deportes WHERE nomDeporte LIKE 'Fútbol%' )

LAS SUB CONSULTAS TAMBIÉN SE PUEDEN INCLUIR CUANDO SE REALIZA UN JOIN.


SELECT codId, apellidos+' '+nombres
FROM Deportistas d
INNER JOIN Deportes e
on d.idDeporte=e.idDeporte
WHERE d.idDeporte IN (
SELECT idDeporte FROM Deportes dp WHERE dp.nomDeporte LIKE 'Fútbol%' )

Potrebbero piacerti anche