2021数据库作业答案:SQL查询与教师课程关联操作

需积分: 0 0 下载量 20 浏览量 更新于2024-08-05 收藏 435KB PDF 举报
本次作业涉及的是数据库查询与SQL语言的应用,题目围绕着教学管理数据库中的五个核心概念进行设计,包括教师信息、课程信息、选课情况以及学生的个人信息。以下是针对每个问题的详细解析: 1. 命题判断及反例: 需要检查是否存在某个教师没有讲授名为“数据库系统”的课程。SQL查询展示了如何通过NOT IN操作符来找出这些教师,如果不存在这样的教师,即没有满足条件的C#,则命题成立。 2. 查询未讲授“数据库系统”课程的教师信息: 这个查询利用子查询找出“数据库系统”课程的所有教师ID,然后在外部查询中排除这些ID,获取没有讲授该课程的教师号(T#)和姓名(TNAME)。 3. 查询同时讲授"C1"和"C4"课程的教师姓名: 使用双联接(IN)查询方法,找出同时与"C1"和"C4"课程关联的教师ID,再提取其姓名。 4. 查询至少讲授两门课程的教师信息: 使用GROUP BY和HAVING子句组合,找出教师ID下课程数量超过1的记录,包括教师号、姓名和地址。 5. 统计20岁以上男女同学人数: 分别计算性别为男和女且年龄大于20岁的学生数量,用GROUP BY和COUNT(*)函数实现。 6. 查询年龄大于所有男同学年龄的女同学信息: 通过嵌套查询找到所有男同学的最大年龄,然后筛选出女性学生中年龄超过这个最大值的学生的学号、姓名和年龄。 7. 查询“liu”同学不选修的课程号: 通过NOT EXISTS子句,查找课程表中存在"liu"同学学分的记录,然后排除这些记录,得到“liu”同学不选修的课程号。 8. 查询每位同学的总分并按分数降序: 这个问题涉及到对选课表SC的进一步分析,找出每个学生的学号S#和他们的总分,通过GROUP BY和ORDER BY语句排列结果。 通过这些SQL查询,可以深入了解如何在实际教学管理系统中使用数据库技术,包括数据过滤、联接操作、聚合函数和条件逻辑等关键知识点。同时,这些练习有助于提高对SQL查询语句的理解和应用能力。