SQL : Manual Introducción al lenguaje de consultas parte 6 (Joins)

Saludos. Uno de las tareas mas cotidianas  en el mundo de las bases de datos relacionales es realizar relaciones entre diferentes tablas y así hacer cruces de información. Este es un tema muy importante por el provecho que podemos sacarle.

El objetivo de este articulo es :

1-)   Escribir sentencias en las que se utilicen una o mas tablas.
2-)  Conocer los diferentes tipos de joins.
3-)  Conoces en que momento usar cada uno de estas relaciones.

Antes de entrar en materia debemos de saber la definición de los joins.

Una definición seria simple seria la sentencia de SQL permite unir registros de dos o más tablas en una base de datos relacional. 

INNER JOIN
Se combinan todo los elementos de la tabla A con los elementos de la tabla B que cumplan las mismas condiciones. Se puede decir que este tipo de Join es el predeterminado ya que es el más usado.

Debemos de tener en cuenta cuando combinamos valores nulos. Estos valores no se relacionan entre sí al menos que usemos is NULL.

Podemos hacer los  INNER JOIN de la siguientes formas  :

Explícita
Implícito

Ejemplo :
Select * from nombre a inner join categoria b on (a.codigo = b.codigo)

CROSS JOIN :
En este tipo de combinación se combinan todos los elementos de la tabla A con los elementos de la tabla B. Se hacen todas las posibles relaciones entre los elementos produciéndose el producto cartesiano.
Ejemplo :
Select campo1 , campo2 , campo3 from nombre a  CROSS JOIN  categoria b

NATURAL JOIN :
Se combinan los campos de la tabla A que sean iguales en la tabla B.

Ejemplo :
Select campo1 , campo2 , campo3 from nombre a  NATURAL JOIN  categoria b

OUTER LEFT JOIN - LEFT JOIN
Se relacionan todos los elementos de la tabla A (izquierda)  con los de la tabla B (derecha) aunque no tengan alguna relación,  presentando estos valores NULL.

Ejemplo :
Select * from nombre a LEFT JOIN categoria b on (a.codigo = b.codigo)

RIGHT OUTER JOIN - RIGHT JOIN
Se relacionan todos los elementos de la tabla A (izquierda)  con los de la tabla B (derecha) aunque no tengan alguna relación,  presentando estos valores NULL.

Ejemplo :
Select * from nombre a  RIGHT JOIN categoria b on (a.codigo = b.codigo)

Ejercicios :

1--Listar todos los productos con sus categorías

2--Listar productos que no tengan categoría

3--Listar categorías que no tengan productos


4--Hacer todos las posibles combinaciones entra los proveedores y  estatus

Base de datos : CursoSql DB

Entregas anteriores :  Entradas

Hasta la próxima entrega!.


Comentarios

Entradas populares de este blog

SQL SERVER : Obtener Objeto Última Fecha de modificación de una tabla

MetroFramework : Aplicaciones de escritorio al estilo metro

Que es LOCALDB?