Tutoriales

Comparar dos tablas en SQL

La comparación de datos en SQL es una tarea común que todo desarrollador de bases de datos encuentra ocasionalmente. Afortunadamente, las comparaciones de datos están disponibles en una variedad de formatos, como comparaciones de texto, comparaciones de Bollinger, etc.

Sin embargo, uno de los escenarios de comparación de datos de la vida real que puede encontrar es una comparación entre dos tablas. Desempeña un papel vital en tareas como la verificación de datos, la identificación de errores, la replicación o la garantía de la integridad de los datos.

En este tutorial, exploraremos los diversos métodos y técnicas que se pueden utilizar para comparar dos tablas de bases de datos en SQL.

Configuración de datos de muestra

Antes de profundizar en cada método, configuremos una configuración de datos básica para demostrarlo.

Tenemos dos tablas que contienen datos de muestra, como se muestra en el ejemplo.

Tabla de ejemplo 1:

Lo siguiente contiene consultas para crear la primera tabla e insertar datos de muestra en la tabla:

Crear tabla sample_tb1 (

La clave primaria Employee_id INT se incrementa automáticamente,
NOMBREVARCHAR(50),
ApellidoVARCHAR(50),
Departamento VARCHAR(50),
salario decimal(10, 2)
);

Insertar muestra_tb1 (Nombre, apellido, departamento, salario.)
valores
(«Penélope», ‘Ponerse al día’, «recursos humanos», 55000.00),
(‘Mateo’, ‘jaula’, ‘él’, 60000.00),
(«Jennifer», ‘davis’, ‘finanzas’, 50000.00),
(«Kirsten», ‘Fawcett’, ‘él’, 62000.00),
(«Cameron», «Costner», ‘finanzas’, 48000.00);

Esto debería crear una nueva tabla llamada «sample_tb1» que contiene información variada, como nombre, departamento y salario.

La tabla de resultados es la siguiente:

Tabla de ejemplo 2:

Sigamos adelante y creemos dos tablas de ejemplo. Supongamos que se trata de una copia de seguridad de la primera tabla. Podemos crear una tabla e insertar datos de muestra de la siguiente manera:

Crear tabla sample_tb2 (
La clave primaria Employee_id INT se incrementa automáticamente,
NOMBREVARCHAR(50),
ApellidoVARCHAR(50),
Departamento VARCHAR(50),
salario decimal(10, 2)
);
Insertar muestra_tb2 (Nombre, apellido, departamento, salario.)
valores
(«Penélope», ‘Ponerse al día’, «recursos humanos», 55000.00),
(‘Mateo’, ‘jaula’, ‘él’, 60000.00),
(«Jennifer», ‘davis’, ‘finanzas’, 50000.00),
(«Kirsten», ‘Fawcett’, ‘él’, 62000.00),
(‘Audrey’, ‘Decano’, ‘finanzas’, 48000.00);

Esto debería crear una tabla e insertar los datos de muestra especificados en la consulta anterior. La tabla de resultados es la siguiente:

Usar excepto para comparar dos tablas.

Una de las formas más comunes de comparar dos tablas en SQL es utilizar el operador EXCEPTO. Esto buscará filas que existan en la primera tabla pero no en la segunda tabla.

Podemos usar esto para comparar con la tabla de ejemplo de la siguiente manera:

elegir *
de muestra_tb1
Aparte de
elegir *
de muestra_tb2;

En este ejemplo, el operador EXCEPTO devuelve todas las filas distintas en la primera consulta (sample_tb1) que no aparecen en la segunda consulta (sample_tb2).

Utilice Union para comparar dos tablas

El segundo método que podemos utilizar es utilizar el operador UNION con la cláusula GROUP BY. Esto ayuda a identificar registros que existen en una tabla pero no en otra, manteniendo registros duplicados.

Utilice la consulta que se muestra a continuación:

elegir
ID de empleado,
nombre,
apellido,
departamento,
salario
de
(
elegir
ID de empleado,
nombre,
apellido,
departamento,
salario
de
muestra_tb1
propiedad conjunta
elegir
ID de empleado,
nombre,
apellido,
departamento,
salario
de
muestra_tb2
) Datos de combinación AS
Agrupar por
ID de empleado,
nombre,
apellido,
departamento,
salario
tener
contando(*) = 1;

En el ejemplo dado, utilizamos el operador UNION ALL para combinar datos de dos tablas conservando duplicados.

Luego usamos la cláusula GROUP BY para agrupar los datos combinados por todos los campos. Finalmente, utilizamos la cláusula HAVING para garantizar que solo se seleccionen registros con un recuento de 1 (sin duplicados).

Producción:

Este método es un poco más complejo, pero puede proporcionar una mejor comprensión cuando se obtienen los datos reales que faltan en ambas tablas.

Utilice INNER JOIN para comparar dos tablas

Si te has estado preguntando, ¿por qué no utilizar INNER JOIN? Tendrás razón. Podemos usar INNER JOIN para comparar tablas y encontrar registros comunes.

Tome la siguiente consulta como ejemplo:

elegir
muestra_tb1.*
de
muestra_tb1
Unión interna sample_tb2 activada
muestra_tb1.employee_id = muestra_tb2.employee_id;

En este ejemplo, utilizamos SQL INNER JOIN para buscar registros que existen en ambas tablas en función de una columna determinada. Si bien este enfoque funciona, a veces puede resultar engañoso porque no está seguro de si el material realmente falta o está presente en ambas tablas o solo en una.

en conclusión

En este tutorial, aprendimos todos los métodos y técnicas que se pueden utilizar para comparar dos tablas en SQL.

LEER  Carcasa inversa pequeña para Linux y Windows

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba