【数据库】SQL 关系代数

环境:MySQL 

ID:MySQL WorkBench 6.3 CE

实现以下有点难度的关系除法。

先给定义

  除运算是同时从关系的水平方向和垂直方向进行运算。给定关系R(X,Y)和S(Y,Z),X、Y、Z为属性组。R÷S应当满足元组在X上的分量值x的象集Yx包含关系S在属性组Y上投影的集合。其形式定义为:

R ÷ S = { tn [X] | tn∈RΛΠy(S) ⊆ Yx}

其中Yx为x在R中的象集,x=tn[X],且R ÷ S的结果集的属性组为X。

 

 

sql实现(MySQL环境):不重复地例举出,至少选了学号为101同学所选的全部课程的学生的学号

p:学生101选了课程y

q:学生选了课程y

要求:(∀y)p→q

 

=(∀y)¬pVq = ¬(∃y)pΛ¬q

select distinct Sno from Score s1 where not exists (select * from Score s2 where s2.Sno = 101 and not exists
(select * from Score s3  where s1.Sno = s3.Sno and s2.Cno = s3.Cno))

  

 

原文地址:https://www.cnblogs.com/yuelien/p/12363955.html