SQL关系代数——除法

如何理解关系中的除法
定义:设关系 R除以关系S的结果为关系T,则T包含所有在R中但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R 中
 

设有关系R,S以及RS,如图所示,求RS÷S的结果
   

很容易求得结果为:{张三 } 
    
   所以你很容易看出来RS÷S 在这里解决的问题就是:“得到选修了所有课程的学生”
   RS÷S的意义就是:“在R和S的联系RS中,找出与S中所有的元组有关系的R元组”。

 R(X,Y)÷S(Y,Z)的运算用结构化语言SQL 语句可表达为下列形式:

select distinct R.X from R as R1
where not exists
(
  select S.Y from S
   where not exists
   (
     select* from R as R2
     where R2.X = R1.X and R2.Y = S.Y
   )
);

猜你喜欢

转载自blog.csdn.net/a45667/article/details/124078280