假设学生选课的数据库系统有如下四张表: Student 是学生表,保存的是学生的基本信息; Course 是课程表,保存的是课程的基本信息: Teacher 是教师表,保存教师的基本信息; SC 是选课信息表,保存的是学生选课的信息。表结构描述如下: (1)学生表: student ( sno , sname , gender , birthdate , major ),其中学号 sno 是主码, sname 表示姓名, gender 表示性别, birthdate 表示出生日期, major 表示所属专业。 (2)课程表: course ( cno , cname , ccredit , semester , period ),其中课程号 cno 是主码, cname 表示课程名, ccredit 表示学分, semester 表示学期, period 表示学时数。 (3)教师表: teacher ( tno , tname , gender , deptname , title ),其中教师号 tno 是主 码, tame 表示教师姓名, gender 表示性别。 deptname 表示教师所在系, title 表示教师职称· (4)选课表: sc ( scid , sno , cno , tno , grade , gpoint , memo ),其中选课编号 scid 是主码,学号 sno ,课程号 cno ,教师号 tno 分别是外码。 grade 代表成 绩, gpoint 代表绩点, memo 表示备注。创建每个专业学生学生修课信息的视图PreView,包括每个专业的专业名称,修课的学生人数,平均成绩
时间: 2023-06-19 09:08:10 浏览: 1284
基于C#+SQL Server(CS界面)学生选课及成绩查询管理系统【100010027】
5星 · 资源好评率100%
可以使用以下 SQL 语句创建 PreView 视图:
```
CREATE VIEW PreView AS
SELECT major, COUNT(*) AS num_students, AVG(grade) AS avg_grade
FROM student JOIN sc ON student.sno = sc.sno
WHERE grade IS NOT NULL
GROUP BY major;
```
这个视图使用了学生表和选课信息表,通过连接这两个表并使用 WHERE 子句过滤掉空成绩的记录,得到每个专业的学生人数和平均成绩,并按照专业分组。最终结果保存在 PreView 视图中,可以在需要的时候查询使用。
阅读全文