解释 DBMS 中的集合运算符

dbmsdatabasebig data analytics更新于 2026/1/13 18:22:17

诸如并集、交集、减集和存在集之类的运算符用于对关系进行运算。它们分别对应关系代数 U、∩ 和 -。参与运算的关系必须具有相同的属性集。

集合运算符的语法如下:−

<query1><集合运算符><query2>

现在,让我们了解一下数据库管理系统 (DBMS) 中的集合运算符。

UNION − 它返回一个表,该表包含所有出现在 <query1> 结果中的行。或在 <query2> 的结果中

例如:

select ename from emp where job='mamager' UNION select ename from emp where job='analyst';

UNION ALL − 返回任一查询选择的所有行,包括所有重复项。

例如:

select salary from emp where job='manager' UNION ALL select salary fro, emp where job='analyst');

INTERSECT − 返回同时出现在两个结果 <query1> 中的所有行和 <query2>

例如:

select * from orderList1 INTERSECT select * from orderList2;

INTERSECT ALL − 它与 INTERSECT 相同,返回两个查询选择的所有不同行。

例如:

select * from orderList1 INTERSECT ALL select * from orderList2;

MINUS − 它返回出现在 <query1> 结果中的行。但不在 <query2> 的结果中

例如:

select * from(select salary from emp where job='manager' MINUS select salary from emp where job='CEO');

示例

请考虑下面给出的分步查询 −

步骤 1

创建表 T1(regno number(10), branch varchar2(10));

输出如下:表已创建。

步骤 2

insert into T1 values(100,'CSE');
insert into T1 values(101,'CSE');
insert into T1 values(102,'CSE');
insert into T1 values(103,'CSE');
insert into T1 values(104,'CSE');

输出结果如下:插入 5 行。

步骤 3

create table T2 (regno number(10), branch varchar2(10));

输出结果如下:表已创建。

步骤 4

insert into T2 values(101,'CSE');
insert into T2 values(102,'CSE');
insert into T2 values(103,'CSE');

输出结果如下:插入 3 行。

步骤 5

select * from T1;

输出

您将获得以下输出 −

100|CSE
101|CSE
102|CSE
103|CSE
104|CSE

步骤 6

select * from T2;

输出

您将获得以下输出 −

101|CSE
102|CSE
103|CSE

集合运算符的应用

现在将集合运算符应用于上面创建的两个表。

集合运算符的使用语法如下 −

select coulmnname(s) from tablename1 operatorname select columnname(s) from table2;

Union

下面给出了使用并集运算符的命令 −

select regno from T1 UNION select regno from T2;

输出

您将获得以下输出 −

100
101
102
103
104

Intersect

下面给出了 Intersect 集合运算符 − 的用法命令

select regno from T1 INTERSECT select regno from T2;

输出

您将获得以下输出 −

101
102
103

Minus

下面给出了 Minus 集合运算符 − 的用法命令

select regno from T1 MINUS select regno from T2;

输出

您将获得以下输出 −

100
104

相关文章