SQL数据库设计与实例:成绩管理系统

需积分: 10 12 下载量 51 浏览量 更新于2024-08-02 收藏 169KB DOC 举报
本资源是一组关于SQL习题的解答参考,涉及的数据库名为GradeManager,包含四个主要表:Student(学生表),Course(课程表),Class(班级表)和Grade(成绩表)。这些表的结构和部分数据已经给出。 在GradeManager数据库中,各表的结构和字段如下: 1. **Student** 表: - Sno(学号,Char(7),非空,唯一标识每个学生) - Sname(学生姓名,VarChar(20),非空) - Ssex(性别,Char(2),非空) - Sage(年龄,Smallint,可空) - Clno(学生所在班级号,Char(5),非空) 2. **Course** 表: - Cno(课程号,Char(1),非空,唯一标识每门课程) - Cname(课程名称,VarChar(20),非空) - Credit(学分,Smallint,可空) 3. **Class** 表: - Clno(班级号,Char(5),非空,唯一标识每个班级) - Specialty(班级所在专业,VarChar(20),非空) - Inyear(入校年份,Char(4),非空) - Number(班级人数,Integer,可空) - Monitor(班长学号,Char(7),可空) 4. **Grade** 表: - Sno(学号,Char(7),非空,关联学生表) - Cno(课程号,Char(1),非空,关联课程表) - Gmark(成绩,Decimal(4,1),可空) 示例数据中,有8个学生、5门课程、2个班级以及部分学生的成绩信息。 针对这个数据库,可能的SQL习题包括但不限于: - 查询所有学生的姓名和年龄。 - 查找每门课程的平均成绩。 - 统计每个班级的学生人数。 - 找出所有选修“数据库”课程的学生。 - 查询年龄大于20岁的男生。 - 分别按学分和班级人数降序排列课程和班级。 - 找出每个班级的班长及其所在班级的专业。 - 计算每位学生的总学分。 - 检索没有成绩记录的学生。 解答这些问题时,会涉及到SQL的基本操作,如SELECT、FROM、WHERE、GROUP BY、ORDER BY、JOIN等语句,以及聚合函数如AVG、COUNT、SUM等。通过解决这些习题,可以深入理解和掌握SQL查询语言在实际数据库管理中的应用。