数据库原理与应用教程习题答案详解:涵盖查询、课程与成绩

需积分: 5 5 下载量 120 浏览量 更新于2024-08-06 1 收藏 184KB DOC 举报
《数据库原理与应用教程-(第二版)》习题参考答案提供了针对数据库基础知识和实践操作的详细解答,适用于学习者理解和巩固数据库原理及其实用应用。以下是部分习题及其解答: 1. **查询T1老师所授课程的课程号和课程名**: SQL语句: ΠCNO,CN(σTNO=’T1’(TC)) * ΠCNO,CN(C) 这个查询通过联接表TC(教师课程关系)和C(课程关系),筛选出TNO为'T1'的教师所对应的课程号(CNO)和课程名(CN)。 2. **查询年龄大于18岁男同学的学号、姓名、系别**: SQL语句: ΠSNO,SN,Dept(σAge>18(Sex=’男’(S))) 这个查询用于筛选性别为男性且年龄超过18岁的学生的学号(SNO)、姓名(SN)以及系别(Dept)。 3. **查询“李力”老师所授课程的课程号、课程名和课时**: SQL语句: ΠCNO(ΠTNO(σTN=’李力’(T))*TC)*C 结合教师(T)和课程(TC)表,找出李力老师所授的所有课程的课程号,并进一步获取课程详情。 4. **查询学号为S1的同学所选修课程的课程号、课程名和成绩**: SQL语句: ΠCNO,CN,Score(σSNO=’S1’(SC)*ΠCNO,CN(C)) 这是查找学生S1选修的课程信息,包括课程号、课程名和对应的成绩。 5. **查询“钱尔”同学所选修课程的课程号、课程名和成绩**: 类似于上一题,但查询对象改为“钱尔”同学,即 ΠCNO,CN,Score(ΠSNO(σSN=’钱尔’(S))*ΠCNO,CN(C)*SC)。 6. **查询至少选修“刘伟”老师所授全部课程的学生姓名**: SQL语句: ΠSN((ΠSNO,SN(S)*ΠSNO,CNO(SC)(ΠCNO(σTN=’刘伟’(T*TC))))) 通过多表联接找到满足条件的学生姓名。 7. **查询“李思”同学未选修的课程的课程号和课程名**: SQL语句: ΠCNO,CN((ΠCNO(C)-ΠCNO(σSN=’李思’(S)*SC))*C) 这个查询找出所有课程减去李思已选修的课程,得到其未选修的课程信息。 8. **查询全部学生都选修了的课程的课程号和课程名**: SQL语句: ΠCNO,CN(C*ΠSNO,CNO(SC)(ΠSNO(S))) 联接课程和学生选课表,找出所有学生都参与的课程。 9. **查询选修了课程号为C1和C2的学生的学号和姓名**: SQL语句: ΠSNO,CNo(ΣCNo(σCNo=’C1’(CNo=’C2’(C)))*ΠSNo,SN(S)) 这个查询找出同时选修课程号为C1和C2的学生信息。 10. **查询选修全部课程的学生的学号和姓名**: 类似于上一题,但没有明确的课程号限制,表示所有课程: ΠSNO,SN(S*ΠSNO,CNO(SC)(ΠCNO(C))) 11. **查询选修课程包含“程军”老师所授课程之一的学生学号**: SQL语句: ΠSNO(SC*ΠCNO(σTN=’程军’(C))) 该查询找出所有选修包含程军老师授课的课程的学生学号。 12. **查询选修课程包含学号S2的学生所修课程的学生学号**: SQL语句: ΠSNO,CNO(SC)(ΠCNO(σCNO=’S2’(SC))) 这是找出学号为S2的学生所选修的所有课程及其对应的其他选课学生学号。 这些习题涵盖了数据库查询的基本语法、关联查询、条件筛选、联接多个表等多个知识点,有助于学习者掌握数据库操作技能并加深对数据库原理的理解。