急!请教一道数据库考题

假设教学数据库中有三个关系:
学生(学号,姓名,年龄,性别,班级)
成绩(学号,课程号,分数)
课程(课程号,课程名称,学时,任课教师)
用关系代数表达式表示下列查询:
(1)检索学号为S3学生所学课程的课程名称与任课教师。
(2)检索LIU老师所授课程的课程号、课程名。
(3)检索至少选修LIU老师所授课程中一门课程的女学生的姓名。
(4)检索没有选修任何课的学生的学号、姓名和班级。

我这里给了参考的答案,但是我的愿望和一楼是一样的,希望学习这种东西是自己的刻苦努力,而不是投机取巧,加油。

1.
select c.课程名称,c.任课教师
from 成绩 a,课程 b,学生 c
where a.课程号=b.课程号 and a.学号=c.学号
and c.学号=S3;

2.
select 课程号,课程名称
from 课程
where 任课教师='LIU';

3.
select a.姓名
from 学生 a,成绩 b,课程 c
where a.学号=b.学号 and b.课程=c.课程
and a.性别='女' and c.任课教师='LIU'
group by a.姓名
having count(a.姓名)>=1;

4.
select 学号,姓名,班级
from 学生
where 学号 not in(
select distinct 学号
from 成绩
);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-08
1.
select 课程.课程名称,课程.任课老师 from 学生
inner join 成绩 on 学生.学号=成绩.学号
inner join 课程 on 成绩.课程号=课程.课程号
where 学生.学号='S3'
2.
select 课程号,课程名称 from 课程 where 任课老师='LIU老师'
3.
select distinct 学生.姓名 from 学生
inner join 成绩 on 学生.学号=成绩.学号
inner join 课程 on 成绩.课程号=课程.课程号
where 学生.性别='女' and 课程.任课老师='LIU老师'
4.
select 学号,姓名,班级 from 学生
where 学号 not in (select 学号 from 成绩)
第2个回答  2010-01-08
《数据库系统原理及应用教程》这本书上102页,参照一下就能写出来了。自己看看吧
相似回答