Fusionar dos tablas en SQL

Fusionar Dos Tablas En Sql



En SQL, la combinación de tablas se refiere al proceso de combinar los datos de dos tablas separadas en una base de datos determinada en una sola unidad basada en una columna o criterio común. Sí, si suena a mesa, es exactamente eso.

Una unión de tablas o una combinación de tablas es una característica reconocida de las bases de datos relacionales y es increíblemente poderosa. Nos permite consolidar la información de múltiples fuentes para crear conocimientos de datos más coherentes y significativos. También permite que las bases de datos relacionales sean altamente escalables (no flexibles), ya que podemos dividir los datos en fragmentos más pequeños y manejables a los que podemos hacer referencia más adelante.

En este tutorial, cubriremos los fundamentos de la unión de tablas o la combinación de tablas. Veamos los ejemplos de tablas del mundo real para solidificar nuestro conocimiento.







Tabla de muestra

Antes de adentrarnos en el mundo de la unión de tablas, configuremos las tablas básicas que usaremos con fines de demostración.



Considere dos tablas que contienen información sobre empleados y salarios, como se muestra en las siguientes consultas de ejemplo:



CREAR TABLA empleados (

empleado_id INT AUTO_INCREMENT CLAVE PRIMARIA,

primer_nombre VARCHAR( 50 ),

apellido VARCHAR( 50 ),

departamento VARCHAR( 50 )

);

Luego podemos insertar los datos de muestra en la tabla del empleado como se muestra en las siguientes consultas:





INSERTAR EN empleados (nombre, apellido, departamento) VALORES

( 'Alicia' , 'Herrero' , 'Recursos humanos' ),

( 'Beto' , 'Johnson' , 'Marketing' ),

( 'Charlie' , 'Wilson' , 'Finanzas' ),

( 'David' , 'Marrón' , 'Ventas' ),

( 'eva' , 'davis' , 'Ingeniería' );

Procedamos y creemos una nueva tabla para almacenar la información salarial de la siguiente manera:

CREAR TABLA salarios (

id_salario INT CLAVE PRIMARIA AUTO_INCREMENT,

empleado_id INT,

salario DECIMAL( 10 , 2 ),

fecha_inicio FECHA,

fecha_final FECHA,

CLAVE EXTRANJERA (employee_id) REFERENCIAS empleados (employee_id)

);

Agregue los datos de muestra de inserción en la tabla de la siguiente manera:



INSERTAR EN salarios (id_empleado, salario, fecha_inicial, fecha_final) VALORES
( 1 , 60000.00 , '2023-01-01' , '2023-12-31' ),
( 2 , 55000.00 , '2023-01-01' , '2023-12-31' ),
( 3 , 65000.00 , '2023-01-01' , '2023-12-31' ),
( 4 , 58000.00 , '2023-01-01' , '2023-12-31' ),
( 5 , 70000.00 , '2023-01-01' , '2023-12-31' );

Esto debería proporcionarnos dos tablas que pueden ayudarnos a demostrar el concepto de unión/fusión de tablas en SQL.

Fusión de tablas SQL/uniones de tablas

Exploremos los distintos tipos de combinaciones de tablas que podemos hacer. Cubriremos los fundamentales a medida que avancemos hacia los más avanzados.

UNIR INTERNAMENTE

El primer y más común tipo de unión de tablas en SQL es INNER JOIN. Una INNER JOIN nos permite combinar las filas de dos tablas en función de una condición específica. Luego, este tipo devuelve solo las filas donde hay una coincidencia entre las tablas.

Tomemos como ejemplos las tablas de “empleados” y “salarios” que creamos anteriormente. Para realizar una INNER JOIN en SQL, usamos la cláusula INNER JOIN de la siguiente manera:

SELECCIONAR

e.empleado_id,

e.primer_nombre,

e.apellido,

departamento electrónico,

s.salario

DE

empleados e

Salarios de INNER JOIN EN

e.employee_id = s.employee_id;

En la consulta de ejemplo dada, utilizamos INNER JOIN para fusionar las tablas 'empleados' y 'salarios' en la columna 'employee_id' que existe en ambas tablas. El conjunto resultante contiene sólo las filas coincidentes de ambas tablas.

Un resultado de ejemplo es el siguiente:

IZQUIERDA COMBINACIÓN EXTERNA

También tenemos una UNIÓN EXTERIOR IZQUIERDA que combina todas las filas de la tabla de la izquierda y las filas coincidentes de la tabla de la derecha. Si no hay ninguna coincidencia en la tabla derecha, la combinación utiliza el valor NULL.

SELECCIONAR

e.empleado_id,

e.primer_nombre,

e.apellido,

departamento electrónico,

s.salario

DE

empleados e

Salarios de LEFT JOIN

EN

e.employee_id = s.employee_id;

En este ejemplo, realizamos una UNIÓN EXTERNA IZQUIERDA para fusionar las tablas 'empleados' y 'salarios'. Se incluyen todas las filas de la tabla 'empleados' y se agregan las filas coincidentes de la tabla 'salarios'. Sin embargo, los valores NULL se incluyen en la columna 'salario' para las filas que no coinciden.

UNIÓN SQL

Otro método para unir tablas en SQL es utilizar el operador UNION. Este operador nos permite combinar los resultados de dos o más declaraciones de selección en un único conjunto de resultados.

Las columnas de cada instrucción SELECT deben tener el mismo tipo de datos para que la unión sea aplicable.

Un ejemplo es el siguiente:

SELECCIONE empleado_id, nombre, apellido, departamento, NULL AS salario

DE empleados e

UNIÓN

SELECCIONE empleado_id, NULL AS nombre, NULL AS apellido, NULL AS departamento, salario

DE salarios s ;

En este caso, un UNIÓN fusiona las tablas “empleados” y “salarios”. Luego creamos las columnas NULL en cada instrucción SELECT para garantizar que ambas tablas tengan un número similar de columnas.

Las UNIONES son técnicamente comunes pero pueden ser útiles especialmente cuando necesitas fusionar tablas con diferentes estructuras.

Conclusión

En este tutorial, exploramos los fundamentos de unir/fusionar dos tablas en un único conjunto de resultados. Es bueno tener en cuenta que hay uniones mucho más avanzadas que se analizan en esta publicación.