数据库除运算
1.1关系运算(除运算)
关系R(X,Y)
和关系S(Y,Z)
,其中X,Y,Z是属性集。则R÷S
得到一个新的关系T
,且T
有以下特点:
- 是
R(X,Y)
关于X(集合运算:{X}=R-S
)投影的子集T
中的任一元组,在R
中的象集,包含关系S
中的Y
属性集的所有字段的域
意义:R÷S
得到的结果是,一个关系某些元组,拥有另一个关系的某一字段的所有值。
还是难以理解,看看下面例子吧,有时候结合例子可以更好的理解。
助理解
1.2 SQL语句实现 除运算
没有特定运算符实现除运算。
需要用到
not exist
直接看例子:
求出选修全部课程学生姓名。
SELECT Sname
FROM xs
WHERE NOT EXISTS --不存在这样的学生
(SELECT cno
FROM kc
WHERE NOT EXISTS --该学生没有选修课
(SELECT *
FROM cj
WHERE Sno= xs.Sno AND Cno=kc.Cno));
不存在没有选修课的学生,双重否定表示肯定。SQL语句表示选修全部课程的学生。