📜  显示两个表或查询之间不同的行

📅  最后修改于: 2022-05-13 01:55:26.027000             🧑  作者: Mango

显示两个表或查询之间不同的行

结构化查询语言 (SQL)是一种通用数据库语言,用于从关系数据库(如 MySQL、Oracle 等)构建、管理和检索数据。
在这里,我们将看到如何获取两个表或查询之间不同的行。

在这里,我们将首先创建一个名为“geeksdb”的数据库,然后我们将在该数据库中创建两个表“Geektab1”和“GeekTab2”。之后,我们将在该表上执行我们的查询。

创建数据库:

create geeksdb;

要使用此数据库:

use geeksdb;

在数据库中创建表 Geektab1:



Create Table Geektab1 (
   ID int,
 NAME varchar (25) );

将值添加到表中:

INSERT INTO Geektab1 VALUES (1, 'Neha');
INSERT INTO Geektab1 VALUES (2, 'Ankit');
INSERT INTO Geektab1 VALUES (3, 'Khushi');
INSERT INTO Geektab1 VALUES (4, 'Mahesh');

这是我们在表中的数据:

SELECT * FROM DEPARTMENT;
IDNAME
1Neha
2Ankit
3Khushi
4Mahesh

在数据库中创建表 Geektab2 :

Create Table Geektab2 (
ID int,
NAME varchar (25) );

将值添加到表中:

INSERT INTO Geektab1 VALUES (1, 'Neha');
INSERT INTO Geektab1 VALUES (2, 'Ankit');
INSERT INTO Geektab1 VALUES (3, 'Khushi');

这是我们在表中的数据:

SELECT * FROM DEPARTMENT;
IDNAME
1Neha
2Ankit
3Khushi
5Komal

我们可以在 SQL 中使用以下关键字来获取两个表之间不同的行:

  • INTERSECT –将显示这两个表共享哪些行。
  • EXCEPT –将向我们显示第一个表中所有不在第二个表中的行。

我们将使用这两个查询查看表是否相似或是否有任何变化。

语法(交叉):



SELECT * FROM table1
INTERSECT
SELECT * FROM table2 ;

例子 :

SELECT * FROM Geektab1
EXCEPT
SELECT * FROM Geektab2 ;

输出 :

IDNAME
1Neha
2Ankit
3Khushi

语法(除外):

SELECT * FROM table1
EXCEPT
SELECT * FROM table2 ;

例子 :

SELECT * FROM Geektab1
EXCEPT
SELECT * FROM Geektab2 ;

输出 :

IDNAME
4Mahesh

如果第一个查询 (INERSECT) 中的行数相同,则这些表是相似的。

同样,如果第二个查询(EXCEPT)的结果为空,则它们等于类似查询的结果。