显示两个表或查询之间不同的行
结构化查询语言 (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;
ID | NAME |
---|---|
1 | Neha |
2 | Ankit |
3 | Khushi |
4 | Mahesh |
在数据库中创建表 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;
ID | NAME |
---|---|
1 | Neha |
2 | Ankit |
3 | Khushi |
5 | Komal |
我们可以在 SQL 中使用以下关键字来获取两个表之间不同的行:
- INTERSECT –将显示这两个表共享哪些行。
- EXCEPT –将向我们显示第一个表中所有不在第二个表中的行。
我们将使用这两个查询查看表是否相似或是否有任何变化。
语法(交叉):
SELECT * FROM table1
INTERSECT
SELECT * FROM table2 ;
例子 :
SELECT * FROM Geektab1
EXCEPT
SELECT * FROM Geektab2 ;
输出 :ID NAME 1 Neha 2 Ankit 3 Khushi
语法(除外):
SELECT * FROM table1
EXCEPT
SELECT * FROM table2 ;
例子 :
SELECT * FROM Geektab1
EXCEPT
SELECT * FROM Geektab2 ;
输出 :ID NAME 4 Mahesh
如果第一个查询 (INERSECT) 中的行数相同,则这些表是相似的。
同样,如果第二个查询(EXCEPT)的结果为空,则它们等于类似查询的结果。