第一步:在"教师"表中选出姓名为刘杰老师的记录
σ 姓名=刘杰(教师)第二步:将选出来的刘杰老师记录与“课程”表相连接。(可以获得刘杰老师开设了哪些课程)
σ 姓名=刘杰(教师)∞ 课程第三步接着,投影出“学生”表中的姓名和系别,与“学生”表格相连接。(可以获得选了刘杰老师开设的课程的学生的系别和学号)
σ 姓名=刘杰(教师)∞ 课程 ∞ π 姓名,系别(学生)study(sno,cno,score)查询至少选修了两门课程的学生学号:π1(σ(1=4Λ2!=5)(study x study))。
select sno(学生的学号) from sc(学生选课表)
group by sno having count()>1
select a学号,b姓名,acnt as 选修门数 from
(select 学号,count(1) as as cnt from 选课表 group by 学号
having count(1)=(select count(1) from 课程表)) a,
学生表 b where a学号=b学号;
扩展资料:
设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。记作:
R-S={t|t∈R∧t∉S}
设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作:
R∩S={t|t∈R∧t∈S}
这里的笛卡尔积严格地讲是广义笛卡尔积(Extended Cartesian Product)。在不会出现混淆的情况下广义笛卡尔积也称为笛卡尔积。
两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。
参考资料来源:百度百科-关系代数
∏ sno,pno,jno(spj)÷∏ sno,pno(σ sno='s1'(spj))
∏ sno,pno,jno(spj)从表spj中选出sno,pno,jno字段构成新表(集合A),
∏ sno,pno(σ sno='s1'(spj)) 先从表spj中筛选出sno=s1的记录,然后选出sno,pno字段构成新表(集合B),
÷你知道是什么意思吧,上面的÷就是由sno,pno,jno字段构成的集合A排除掉A中没有集合B的部分,留下有集合B的部分,所以你做对了
还有,你现在是在学ACCESS还是SQL SERVER啊,这是我以前做过的
以上就是关于数据库关系代数全部的内容,包括:数据库关系代数、数据库中用关系代数表达式,查询至少选修两门课程的学生的学号和姓名怎么写、高手赐教!数据库的关系代数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)