练习SQL查询:教学数据库学生关系S、课程关系C和选课关系SC

0 下载量 40 浏览量 更新于2023-12-28 收藏 219KB PPT 举报
no、Sname、Sage、Ssex、Sdept);教师关系 T(Tno、Tname、Tsex、Tage、Prof、Dept);课程关系 C(Cno、Cname、Tno、Sdept)。试构造以下SQL查询语言:1.列出所有选修了“002”号课程的同学的学号及姓名;2.列出“刘教授”所授课程的课程号和课程名;3.找出和“黄”姓教师拥有相同专业的教师;4.查询所有同时选修了“周”老师所授课程的同学的学号、姓名。". 本次SQL查询练习题涉及教学数据库中三个关系:学生关系S(Sno、Sname、Sage、Ssex、Sdept)、教师关系T(Tno、Tname、Tsex、Tage、Prof、Dept)和课程关系C(Cno、Cname、Tno、Sdept)。针对这些关系,我们试构造以下SQL查询语言: 1. 列出所有选修了“002”号课程的同学的学号及姓名 SELECT Sno, Sname FROM S WHERE Sno IN (SELECT Sno FROM S, C WHERE S.Sno = C.Sno and C.Cno = '002'); 这个查询语句首先从学生关系S中选取学号和姓名,然后使用子查询来筛选出选修了002号课程的学生。通过IN子句将两个查询结果关联起来,最终得到所有选修了“002”号课程的同学的学号和姓名。 2. 列出“刘教授”所授课程的课程号和课程名 SELECT C.Cno, C.Cname FROM C, T WHERE T.Tname = '刘教授' and T.Tno = C.Tno; 这个查询语句从课程关系C和教师关系T中选取课程号和课程名,然后通过T.Tname = '刘教授'来筛选出刘教授所授课程的信息。 3. 找出和“黄”姓教师拥有相同专业的教师 SELECT T.Tname FROM T WHERE T.Dept = (SELECT Dept FROM T WHERE Tname LIKE '黄%'); 这个查询语句首先通过子查询筛选出姓黄的教师所在的部门,然后在教师关系T中找出具有相同专业的教师。 4. 查询所有同时选修了“周”老师所授课程的同学的学号、姓名 SELECT S.Sno, S.Sname FROM S, C, T WHERE S.Sno = C.Sno and C.Tno = T.Tno and T.Tname = '周' and S.Sno IN (SELECT Sno FROM S, C WHERE S.Sno = C.Sno and C.Tno = T.Tno); 这个查询语句通过多表连接将学生关系S、课程关系C和教师关系T关联起来,然后通过多层嵌套的子查询来筛选出同时选修了“周”老师所授课程的同学的学号和姓名。 以上SQL查询语言的构造涉及了多表连接、子查询和条件筛选等操作,对于理解和掌握SQL查询语言的基本语法和用法具有一定的帮助。希望通过这些练习题,能够加深大家对SQL查询语言的理解和掌握,提高数据库操作的能力和水平。