解释 DBMS 中的集合运算符

并集、交集、减号和存在等运算符对关系进行操作。对应关系代数U、∩和-。参与操作的关系必须具有相同的属性集。

集合运算符的语法如下 -

<query1><set operator><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步

Create table 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));

输出如下: 表已创建。

第四步

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;

联盟

下面给出的是使用联合集合运算符的命令 -

select regno from T1 UNION select regno from T2;

输出

您将获得以下输出 -

100
101
102
103
104

相交

下面给出的是使用 Intersect 集合运算符的命令 -

select regno from T1 INTERSECT select regno from T2;

输出

您将获得以下输出 -

101
102
103

下面给出的是使用减集运算符的命令 -

select regno from T1 MINUS select regno from T2;

输出

您将获得以下输出 -

100
104