Compare y encuentre diferencias entre dos tablas en SQL

El lenguaje de consulta estructurado o SQL es un lenguaje de base de datos estándar que se utiliza para crear, mantener y recuperar datos de bases de datos relacionales como MySQL, Oracle, etc. Aquí veremos cómo comparar y encontrar diferencias entre dos tablas en SQL.

Aquí, primero crearemos una base de datos llamada «geeks», luego crearemos dos tablas » departamento_antiguo » y » departamento_nuevo » en esa base de datos. Después, ejecutaremos nuestra consulta en esa tabla.

Creación de base de datos:.

Use la siguiente instrucción SQL para crear una base de datos llamada geeks :

CREATE geeks;

Usando la base de datos:

USE geeks;

Definición de tabla para la tabla department_old :

CREATE TABLE department_old(
 ID int,
 SALARY int,
 NAME Varchar(20),
 DEPT_ID Varchar(255));

Agregar valores en la tabla:

Use la siguiente consulta para agregar datos a la tabla:

INSERT INTO department_old VALUES (1, 34000, 'ANURAG', 'UI DEVELOPERS');
INSERT INTO department_old VALUES (2, 33000, 'HARSH', 'BACKEND DEVELOPERS');
INSERT INTO department_old VALUES (3, 36000, 'SUMIT', 'BACKEND DEVELOPERS');
INSERT INTO department_old VALUES (4, 36000, 'RUHI', 'UI DEVELOPERS');
INSERT INTO department_old VALUES (5, 37000, 'KAE', 'UI DEVELOPERS');

Para verificar el contenido de la tabla, use la siguiente declaración:

SELECT * FROM department_old;
IDENTIFICACIÓN SALARIO NOMBRE DEPT_ID
1 34000 ANURAG DESARROLLADORES DE IU
2 33000 DURO DESARROLLADORES BACKEND
3 36000 CUMBRE DESARROLLADORES BACKEND
4 36000 RUHI DESARROLLADORES DE IU
5 37000 KAE DESARROLLADORES DE IU

El resultado de SQL Server Management Studio: 

Definición de tabla para la tabla department_new :

CREATE TABLE department_new(
ID int,
SALARY int,
NAME Varchar(20),
DEPT_ID Varchar(255));

Agregar valores en la tabla:

Use la siguiente consulta para agregar datos a la tabla:

INSERT INTO department_new VALUES (1, 34000, 'ANURAG', 'UI DEVELOPERS');
INSERT INTO department_new VALUES (2, 33000, 'HARSH', 'BACKEND DEVELOPERS');
INSERT INTO department_new VALUES (3, 36000, 'SUMIT', 'BACKEND DEVELOPERS');
INSERT INTO department_new VALUES (4, 36000, 'RUHI', 'UI DEVELOPERS');
INSERT INTO department_new VALUES (5, 37000, 'KAE', 'UI DEVELOPERS');
INSERT INTO department_new VALUES (6, 37000, 'REHA', 'BACKEND DEVELOPERS');

Para verificar el contenido de la tabla, use la siguiente declaración:

SELECT * FROM department_new;
IDENTIFICACIÓN SALARIO NOMBRE DEPT_ID
1 34000 ANURAG DESARROLLADORES DE IU
2 33000 DURO DESARROLLADORES BACKEND
3 36000 CUMBRE DESARROLLADORES BACKEND
4 36000 RUHI DESARROLLADORES DE IU
5 37000 KAE DESARROLLADORES DE IU
6 37000 REHA DESARROLLADORES BACKEND

Producción:

Comparación de los resultados de las dos consultas

Supongamos que tenemos dos tablas: table1 y table2 . Aquí, usaremos UNION ALL para combinar los registros en función de las columnas que deben compararse. Si los valores en las columnas que deben compararse son los mismos, COUNT(*) devuelve 2; de lo contrario, COUNT(*) devuelve 1.

Sintaxis:

SELECT column1, column2.... columnN
FROM
( SELECT table1.column1, table1.column2
 FROM table1
 UNION ALL
 SELECT table2.column1, table2.column2
 FROM table2
)  table1
GROUP BY column1
HAVING COUNT(*) = 1

Ejemplo:

Select ID from
( select * from department_old
UNION ALL
select * from department_new)
department_old
GROUP BY ID
HAVING COUNT(*) = 1

Producción:

Si los valores de las columnas involucradas en la comparación son idénticos, no se devuelve ninguna fila.

Publicación traducida automáticamente

Artículo escrito por khushboogoyal499 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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