SQL查询实践:学生选课与成绩分析

需积分: 0 2 下载量 111 浏览量 更新于2024-08-04 收藏 62KB DOCX 举报
"上机实验四五六参考答案1" 这篇实验是关于使用SQL语言进行数据库查询的实践。SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言。实验中的任务涵盖了多个基本的SQL查询操作,包括查找特定信息、联接表格、使用聚合函数等。 1. 找出所有被学生选修了的课程号: 使用`SELECT DISTINCT`语句,从`grade`表中选取不同的课程号(`cno`),这将返回所有被学生选修的课程编号。 2. 找出01311班女学生的个人信息: 在`student`表中通过`WHERE`子句过滤出班级编号(`clno`)为'01311'且性别(`ssex`)为'女'的所有记录,返回这些学生的完整信息。 3. 找出01311班、01312班的学生姓名、性别、出生日期: 同样使用`WHERE`子句,但条件是班级编号为'01311'或'01312',返回这些学生的姓名、性别和年龄。 4. 找出所有姓李的学生的个人信息: 利用`LIKE`操作符配合通配符%,查询`student`表中名字以'李'开头的所有学生记录。 5. 找出学生李勇所在班级的学生人数: 这个查询涉及到两个表格的联接。首先找到学生李勇所在的班级编号,然后查询该班级在`class`表中的学生人数。这里用了三种方法:直接联接、子查询嵌套在`IN`操作符中以及子查询直接作为等值比较的右侧。 6. 找出课程名为操作系统的平均成绩、最高分、最低分: 通过联接`grade`和`course`表,筛选出课程名为'操作系统'的记录,然后使用聚合函数`AVG`, `MAX`, `MIN`分别计算平均分、最高分和最低分。 7. 找出选修了课程的学生人数: 方法一是计算不同学生编号(`sno`)的数量,表示选课的学生总数;方法二是添加额外的条件`gmark IS NOT NULL`来确保只计算有成绩的学生。 8. 找出选修了课程操作系统的学生人数: 分别通过联接和子查询找出选修了'操作系统'课程的学生人数。 9. 找出2000级计算机软件班的成绩: 这个查询可能需要结合`student`和`grade`表的信息,查找2000级计算机软件班(假设班级编号为特定值)的学生的成绩。 以上就是实验中涉及的主要SQL查询操作,它们展示了如何从数据库中提取所需信息,包括筛选、聚合、联接和子查询等核心技能。这些查询对于理解SQL语言的基本结构和功能至关重要。