Как сравнить данные во всех таблицах двух разных баз данных в Oracle?

Опубликовано: 9 Января, 2023

Oracle — это универсальная база данных, она хорошо защищена и, следовательно, в значительной степени используется в банковских и страховых приложениях. Хотя база данных NoSQL доминирует во многих отраслях, оракул по-прежнему имеет свое значение, потому что большинство устаревших приложений по-прежнему предпочитают работать только с оракулом, например с РСУБД. Распределенные системы будут использовать 2 или более баз данных оракула, и, следовательно, возникает сценарий сравнения данных во всех таблицах в разных базах данных оракула. Точно так же SQL Server является универсальной и наиболее востребованной СУБД, и благодаря своим функциям безопасности она широко используется.

Давайте посмотрим, как сравнить данные во всех таблицах в двух разных базах данных в SQL Server:

Шаг 1: Создайте базы данных для сотрудников, т.е. employeeData 1 и employeeData 2.

Запрос:

-- employeeData1 database is created
CREATE  DATABASE employeeData1; 
-- Making employeeData1 as active database
USE employeeData1; 

-- Create a table named employees under employeeData1 
CREATE TABLE employees 
( EMPLOYEEID int NOT NULL,   
  EMPLOYEENAME varchar(50) NOT NULL,   
  EMPLOYEECITY varchar(50)   
)
-- employeeData2 database is created
CREATE  DATABASE employeeData2; 
-- Making employeeData2 as active database

USE employeeData2; 
GO
CREATE TABLE employees 
( EMPLOYEEID int NOT NULL,   
  EMPLOYEENAME varchar(50) NOT NULL,   
  EMPLOYEECITY varchar(50)   
)

Шаг 2: Вставьте значения в базу данных.

Запрос:

GO
INSERT INTO employees (employeeId,employeeName,employeeCity) 
VALUES (1,"XXX","CHENNAI")
SELECT * FROM employeeData2.dbo.employees;

Выход:


сотрудникДанные2

Шаг 3: Теперь давайте посмотрим на сравнение данных между этими двумя разными базами данных таблицы сотрудников.

  • Использование ИНТЕРСЕКТ:

Запрос:

--INTERSECT - IT WILL DISPLAY  
-- ONLY COMMONLY OCCURING ROWS IN BOTH TABLES

SELECT * FROM employeeData1.dbo.employees INTERSECT
SELECT * FROM employeeData2.dbo.employees;

Выход:

  • Используя СОЮЗ:

Запрос:

--UNION - WILL COMBINE ALL THE ROWS 
--IN BOTH TABLES BUT IGNORES DUPLICATES
SELECT * FROM employeeData1.dbo.employees UNION
SELECT * FROM employeeData2.dbo.employees;

Выход:

  • Используя ОБЪЕДИНЕНИЕ ВСЕ:

Запрос:

-- UNION ALL - WILL COMBINE ALL THE ROWS IN 
-- BOTH TABLES BUT WILL HAVE  DUPLICATES AS WELL.
SELECT * FROM employeeData1.dbo.employees UNION ALL
SELECT * FROM employeeData2.dbo.employees;

Выход:

  • Использование, КРОМЕ:

Запрос:

-- EXCEPT - IT WILL DISPLAY  ONLY 
-- UNCOMMON ROWS OF BOTH TABLES
SELECT * FROM employeeData1.dbo.employees EXCEPT
SELECT * FROM employeeData2.dbo.employees;

Выход:

Вывод:

Используя INTERSECT, UNION, UNION ALL и EXCEPT, мы можем сравнивать данные для одной базы данных или даже для другой базы данных.