解释 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

