计算机数据库关系运算 “除”

计算机数据库关系运算 “除”,第1张

R的属性是(A,B,C,D),S的属性是(C,D)

因此,R÷S的属性是(A,B),注:R÷S的属性由属于R但不属于S的属性组成

(R÷S)×S得到的元组必须是R中的元组。

S的第一个元组是(c,d),可以在R中寻找C属性为c,D属性为d的元组,结果可以发现有以下两组:

a b c d

e d c d

对应的A、B属性为以下两组

a b

e d

S的第二个元组是(e,f),可以检验R中有没有元组a b e f 和e d e f,如果没有前者将a b去掉,没有后者前e d去掉,本题2者均有,因此结果R÷S为

A B

a b

e d

写个过程

从1开始到1000

满足

X%2==1&&X%3==2&&X%4==3&&X%5==4&&X%6==5

然后就返回值

如果到1000还没有就从1001-2000继续循环就行了

总有值得

用SQL语句实现的一个简单除法 *** 作,把问题一个一个分开来解释:

1.查询在主查询中用到了depositor表。而在它的嵌套子查询中,同样用到了这张表。所以,这个查询为相关子查询。

相反,如果这个嵌套查询在子查询中没有用到主查询中的表,那么我们称之为无关子查询。

相关子查询和无关子查询的在使用上的区别是什么呢?如果一个嵌套查询中包含无关子查询。那么我们会先执行子查询,在子查询结果的这张表中,我们再执行主查询。也就是说在子查询结果的基础之上再进行查询。

而相关子查询不同,在主查询中扫描一条记录,比如果我们拿到了一条depositor的记录A,我们会把A带入到子查询中,看结果是否为真,如果为真,那么就输出A。然后取depositor的表中的下一项B。一次逐条扫描。

2.在数据库中,如果我们想表示关系A包含关系B。我们应该怎么表示呢?

对!用NOT EXISTS关键字。

如果我们说A包含B,那么也就等价于NOT EXISTS ( B EXCEPT A)

换句话说就是 ==》不存在属于B而不属于A的元组。那么也就是A包含B。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9408274.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存