10.设有3个关系:(1)学生关系S(学号SNO,姓名SNAME,年龄 AGE,性别SEX)(2)学生选课关系SC(学号SNO,课程号CNO,成绩 SCORE)(3)课程关系C(课程号CNO,课程名 CNAME,任课教师 TEACHER.试用关系代数[1]表达式完成下列查询。(1)查询老师“李诚”所授课程的课程号和课程名。(2)查询年龄大于20岁的男学生的学号和姓名。(3)查询考试成绩不及格的学生姓名和课程名。(4)查询学号为“091201”的学生所学课程的课程名与成绩。(5)查询至少选修老师“李诚”所授课程中一门课的学生姓名。(6)查询选修了“数据库原理”的所有学生的学号、姓名和成绩。(7)查询学生“李伟”不学的课程的课程号。(8)查询至少选修两门课的学生学号。(9)查询全部学生都选修的课程的课程号与课程名。(10)查询选修课程包含老师“李诚”所授全部课程的学生学号。
10.设有3个关系:
(1)学生关系S(学号SNO,姓名SNAME,年龄 AGE,性别SEX)
(2)学生选课关系SC(学号SNO,课程号CNO,成绩 SCORE)
(3)课程关系C(课程号CNO,课程名 CNAME,任课教师 TEACHER.
试用关系代数[1]表达式完成下列查询。
(1)查询老师“李诚”所授课程的课程号和课程名。
(2)查询年龄大于20岁的男学生的学号和姓名。
(3)查询考试成绩不及格的学生姓名和课程名。
(4)查询学号为“091201”的学生所学课程的课程名与成绩。
(5)查询至少选修老师“李诚”所授课程中一门课的学生姓名。
(6)查询选修了“数据库原理”的所有学生的学号、姓名和成绩。
(7)查询学生“李伟”不学的课程的课程号。
(8)查询至少选修两门课的学生学号。
(9)查询全部学生都选修的课程的课程号与课程名。
(10)查询选修课程包含老师“李诚”所授全部课程的学生学号。
题目解答
答案
以下是对应每个查询的关系代数表达式:
(1) π CNO, CNAME (σ TEACHER="李诚" C)
(2) π SNO, SNAME (σ AGE>20 ∧ SEX="男" S)
(3) π SNAME, CNAME (σ SCORE<60 SC ⋈ SNO=S S ⋈ CNO=C)
(4) π CNAME, SCORE (σ SNO="091201" SC ⋈ CNO=C)
(5) π SNAME (σ SNO IN (σ TEACHER="李诚" C ⋈ SC) S)
(6) π SNO, SNAME, SCORE (σ CNAME="数据库原理" SC ⋈ SNO=S)
(7) π CNO (C - π CNO (σ SNAME="李伟" SC ⋈ CNO=C))
(8) π SNO (γ SNO (S ⋈ SC) HAVING COUNT(CNO) >= 2)
(9) π CNO, CNAME (C - π CNO (σ SNO NOT IN (S ⋈ SC) C))
(10) π SNO (γ SNO (σ TEACHER="李诚" C ⋈ SC) HAVING COUNT(DISTINCT CNO) = (π COUNT(CNO) (σ TEACHER="李诚" C ⋈ SC)))