问题描述
前天看到群里有人问了一个关于数据库查询的问题,问题大概如下:
基本表是s(学生表),c(课程表),sc(学生选课表),怎么查询选修了所有2学分课程的学生姓名。
问题解决
代数解决
此类问题应该用除法解决,用sc表取除以所有2学分的课程表,得到选修了所有2学分的学生学号,然后根据学生学号查询学生姓名。
表达式为:
∏
name
(sc
÷
ϭ
credit=2
(c)
⋈
S)
该表达式有选择、除法、投影和连接操作。其中最主要的就是除法运算,这里就说说我对除法运算的理解。
设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元祖与S的元祖的所有