SQL基础教程7(1)

表的加减法

集合在数据库领域表示记录的集合。具体来说,表、 视图和查询的执行结果都是记录的集合。

集合运算:对满足同一规则的记录进行四则运算

注意事项

1、作为运算对象的记录的列数必须相同

2、作为运算对象的记录中列的类型必须一致

  • 在有些 DBMS中,即使数据类型不同,也可以通过隐式类型转换完成操作。但由于并非所有的 DBMS都支持这样的用法, 因此希望使用恰当的数据类型来进行运算。
  • 一定要使用不同数据类型的列时,可以使用 6-1 节中的类型转换函数 CAST

3、可以使用任何SELECT语句,但ORDER BY子句只能在最后使用一次

4、集合运算符会除去重复的记录,如果希望集合运算符保留重复行,就需要使用ALL选项

集合运算符

1、UNION(并集):表的加法

2、INTERSECT(交集):选取两个记录集合中公共部分,MySQL尚不支持INTERSECT,无法使用。

  • AND: 可以选取出一张表中满足多个条件的公共部分不同
  • INTERSECT :应用于两张表,选取出它们当中的公共记录

3、EXCEPT(差集):进行减法运算,MySQL还不支持EXCEPT,因此也无法使用

4、CROSS JOIN:乘法

4、关系除法:集合运算中的除法

从 EmpSkills 表中选取出掌握了 Skills 表中所有3个领域的技术的员工

-- 选取出掌握所有3个领域的技术的员工
SELECT DISTINCT emp
  FROM EmpSkills ES1
 WHERE NOT EXISTS
          (SELECT skill
             FROM Skills
           EXCEPT
           SELECT skill
             FROM EmpSkills ES2
            WHERE EP1.emp = ES2.emp);

除法和乘法是相辅相成的关系,除法运算的结果(商)乘以除数就能得到除法运算前的被除数了。例如对于 20÷4 = 5 来说,就是 5( 商 )×4( 除数 ) = 20( 被 除数 )。

关系除法中这样的规则也是成立的。通过商和除数相乘,也就是交叉联结, 就能够得到作为被除数的集合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

九号会弹钢琴啊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值