假设学生选课的数据库系统有如下四张表: 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 表示备注。创建视图View01,其中包含计算机科学专业的学生信息,并且要求视图的所有更新操作仍能够通过视图看得到。#5基于上例中的视图ViewALL,创建计算机科学专业学生选修课程的视图JSJView,包含学生学号,姓名。课程号,课程名,和成绩
时间: 2023-06-19 17:08:48 浏览: 151
数据库系统概论Sql练习表student、sc、course.pdf
创建View01视图的SQL语句如下:
```
CREATE VIEW View01 AS
SELECT sno, sname, gender, birthdate, major
FROM student
WHERE major = '计算机科学';
```
创建JSJView视图的SQL语句如下:
```
CREATE VIEW JSJView AS
SELECT sc.sno, student.sname, sc.cno, course.cname, sc.grade
FROM sc
INNER JOIN student ON sc.sno = student.sno
INNER JOIN course ON sc.cno = course.cno
WHERE student.major = '计算机科学';
```
需要注意的是,JSJView视图是基于View01视图的,因此在创建JSJView视图之前需要先创建View01视图。同时,由于涉及到成绩信息,JSJView视图中的数据是从选课信息表sc中获取的。
阅读全文