Как сравнить данные во всех таблицах двух разных баз данных в Oracle?
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;
Выход:
Шаг 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, мы можем сравнивать данные для одной базы данных или даже для другой базы данных.