SQL笔记(四) 集合运算

集合运算

SQL作用的关系上的unionintersect、和 except 运算对应数学集合论中的- 运算

  • 在2009年秋季学期开设的所有课程的集合:
select course_id
from section
where semester = 'Fall' and year = 2009;
  • 在2010年春季学期开设的所有课程的集合:
select course_id
from section
where semester = 'Spring' and year = 2010;

使用c1和c2分别指代以上查询结果的两个关系。

并运算

查询1. 并运算

找出在2009年秋季学期开课,或者在2010年春季学期开课或两个学期都开课的所有课程:

(select course_id
from section
where semester = 'Fall' and year = 2009)
union
(select course_id
from section
where semester = 'Spring' and year = 2010);

union运算自动去除重复
使用union all代替union 可以保留重复

交运算

查询2. 交运算

找出2009年秋季和2010年春季同时开课的所有课程的集合:

(select course_id
from section
where semester = 'Fall' and year = 2009)
intersect
(select course_id
from section
where semester = 'Spring' and year = 2010);

intersect运算自动去除重复
使用intersect all代替intersect 可以保留重复

差运算

某些SQL实现,特别是Oracle,使用关键字minus代替except。

查询3. 差运算

找出在2009年秋季开课,但不在2010年春季学期开课的所有课程:

(select course_id
from section
where semester = 'Fall' and year = 2009)
except
(select course_id
from section
where semester = 'Spring' and year = 2010);

except运算自动去除重复
使用except all代替except 可以保留重复

在Oracle第八章的课堂笔记中,我们学习了集合运算的概念和用法。集合运算是一种对数据库中的数据进行操作和查询的技术,它可以将多个查询的结果进行合并、叉和排除等操作。 首先,我们学习了并集运算UNION)。并集运算可以将两个或多个查询的结果合并为一个结果集,它会去除重复的行,并按照查询语句的顺序进行排序。我们需要注意的是,并集运算中要求两个查询的列数和类型必须匹配。 接着,我们学习了运算INTERSECT)。运算可以将两个查询的结果中的共同部分提取出来,生成一个新的结果集。运算同样要求两个查询的列数和类型必须匹配,而且结果集中不会出现重复的行。 然后,我们学习了差集运算(MINUS)。差集运算可以从一个查询的结果中排除另一个查询的结果,生成一个新的结果集。差集运算同样要求两个查询的列数和类型必须匹配,并且结果集中不会出现重复的行。 最后,我们练习了使用这些集合运算符来解决实际问题。通过编写SQL查询语句,我们可以根据给定的条件和要求,使用并集、集和差集等运算符来获取我们需要的结果。 总之,Oracle第八章的集合运算课堂笔记和练习让我们了解了集合运算的概念和用法,以及如何使用这些运算符来操作和查询数据库中的数据。这些知识对我们在实际应用中更高效地处理和分析数据具有重要意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coding-cat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值