此题为判断题(对,错)。
某学校的教学信息关系数据库中有如下两个表:
学生表(学号,姓名,性别,专业)
成绩表(学号,课程名,分数)
用SQL语句表达下述查询:
(a)检索分数高于80分的所有学生的学号和分数。
(b)检索选修了“高等数学”课程的所有学生的学号。
设教学数据库中有三个关系: 学生关系 S(S#,SNAME,AGE,SEX) 选课关系 SC(S#,C#,GRADE) 课程关系 C(C#,CNAME,TEACHER) 用SQL语句实现下面查询: 1.查询不学C2课的学生姓名与年龄。 2.求刘老师所授课程的每门课程的平均成绩。 3.求年龄大于女同学平均年龄的男学生姓名和年龄。 4.检索学习全部课程的学生姓名; 即在表S中找学生,要求这个学生学了全部课程。换言之,在S表中找学生,在C中不存在一门课程,这个学生没有学。 5.往关系C中插入一个课程元组(‘C8’,‘VC++’,‘BAO’)
●试题三
对于教学数据库的三个基本表S(S#,SNAME,AGE,SEX),SLLS#,C#,GRADE),C(C#,CNAME,TEACHER)。现根据查询条件填充下面SQL语句空白的部分。
1.检索LIU老师所授课程的课程号和课程名。
2.检索至少选修LIU老师所授课程中一门课程的女学生姓名。
3.检索WANG同学不学的课程的课程名。
4.检索全部学生都选修的课程的课程号与课程名。
5.检索选修课程包含LIU老师所授课程的学生学号。
【说明】
1.SELECT (1) FROM C WHERE TEACHER=′LIU′
2.SELECT S.SNAME FROM S,SC
WHERE S.S#=S
C.S# AND S.SEX=′F′AND S
C.C#= (2)
(SELECTC# FROM C WHERE TEACHER=′LIU′)
3.SELECT CNAME FROM C
WHERE C#<> (3) (SELECTS
C.C# FROM S,SC WHERE S.S#=S
C.S# AND S.SNAME=′WANG′)
4.由题知,该问题是在表C中找课程号和课程名,要求这门课被全部学生所选。
SELECT C#,CNAME
FROM C
WHERE NOT EXISTS
(SELECT*
FROMS
WHERE NOT EXISTS
(SELECT *
FROMS
WHERE NOT EXISTS
(SELECT*
FROM SC
WHERE (4)
5.SELECT DISTINCT S#
FROM SC
WHERE (5)
(SELECT C#
FROM C
WHERE TEACHER=′LIU′)
在“学生.mdb”数据库中有教师、课程、授课、课程成绩和学生表。
(1)以教师、授课和课程表为数据源,创建生成查询“生成授课表”,表中含有授课 ID、教师姓名和课程名称字段。授课表结果如图所示。
(2)以学生表和课程成绩表为数据源,创建查询“平均分”,结果显示学生姓名和平均分字段,平均分=Sum([课程成绩]![成绩])/Count([课程成绩]![课程编号])。查询结果如图所示。