SQL INTERSECT操作符
在集合论中,两个集合的交集是共同存在于两个集合中的值的集合。换句话说,两个集合的交集是同时存在于两个集合中的元素的集合。让我们以下表作为示例来更好地理解这个概念-
如果我们使用 INTERSECT 运算符对两个集合执行交集操作,它将返回两个集合中的共同行,即 5 和 8 。该运算符从最终结果集中删除重复的行。
SQL中的INTERSECT操作符
在SQL中,使用 INTERSECT 操作符检索两个SELECT(表)语句的结果集中相同/重复的记录。
在实际场景中,数据库中可能包含大量包含信息的表。用户可能会发现从各个表中收集共同信息具有挑战性。因此,我们使用INTERSECT操作符来实现这一目标。它可以帮助检索各个表中的共同数据。
语法
为了从两个不同的表中检索相同的记录,我们使用以下语法−
Note − INTERSECT 操作有一些强制规则,例如 SELECT 语句中的列数、数据类型和其他列必须在两个 SELECT 语句中相同,INTERSECT 操作符才能正确工作。
示例
首先,让我们使用以下查询创建一个名为 “ STUDENTS ” 的表 −
一旦创建了表格,让我们使用以下查询将一些值插入到表格中-
让我们使用以下查询来验证表“ STUDENTS ”是否已创建:
如下所示,表已经在数据库中创建。<\p>
让我们使用以下查询创建另一张表“ ASSOCIATES ”。
让我们使用以下查询将一些值插入到表中 –
让我们使用以下查询来验证表格“ ASSOCIATES ”是否已创建:
从下面的输出中可以看到,表已经在数据库中创建了。
现在,我们正在尝试使用以下查询从两个表中检索公共记录。
输出
当我们执行上述查询时,输出如下:
INTERSECT与BETWEEN运算符一起使用
正如我们在初始的语法中讨论的那样,我们还可以使用INTERSECT运算符与条件运算符一起使用。
我们可以在SQL中使用INTERSECT运算符与BETWEEN运算符来找到在指定范围内的行。
示例
现在,让我们检索同时出现在两个表中的记录。此外,我们将使用以下查询检索年龄在25到30之间的记录。
输出
上述查询的输出如下所示−
使用IN运算符与INTERSECT
在SQL中,我们还可以使用INTERSECT运算符与IN运算符结合使用,以查找具有指定值的公共行。IN运算符用于基于指定值列表对结果集进行过滤。
示例
在这里,我们尝试从两个表中检索共同记录。此外,我们使用 IN 运算符来检索爱好为“Cricket”的记录。
输出
当我们执行上述查询时,输出结果如下:
使用LIKE操作符和INTERSECT进行匹配
LIKE操作符用于对字符串进行模式匹配。在SQL中,INTERSECT操作符也可以与LIKE操作符一起使用,以查找与指定模式匹配的公共行。
示例
让我们使用通配符‘ % ’和 LIKE 操作符从两个表的共同名称中检索以‘v’开头的名称。
输出
上述查询的输出如下所示: