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