3.2 学生-课程数据库
本章以学生-课程数据库为例来讲解SQL的数据定义、数据操纵、数据查询和数据控制语句。
为此,首先要定义一个学生-课程模式S-T。学生-课程数据库中包括以下三个表:Student学生表、Course课程表、SC学生选课表。
- l 学生表:Student(Sno,Sname,Ssex,Sage,Sdept)
- l 课程表:Course(Cno,Cname,Cpno,Ccredit)
- l 学生选课表:SC(Sno,Cno,Grade)
关系的主码加下划线表示。各个表中的数据示例如图3.2所示。
Student表(学生表)
学号 |
姓名 |
性别 |
年龄 |
所在系 |
Sno |
Sname |
Ssex |
Sage |
Sdept |
201215121 |
李勇 |
男 |
20 |
CS |
201215122 |
刘晨 |
女 |
19 |
CS |
201215123 |
王敏 |
女 |
18 |
MA |
201215125 |
张立 |
男 |
19 |
IS |
(a)
Course表(课程表)
课程号 |
课程名 |
先修课 |
学分 |
Cno |
Cname |
Cpno |
Ccredit |
1 |
数据库 |
5 |
4 |
2 |
数学 |
2 |
|
3 |
信息系统 |
1 |
4 |
4 |
操作系统 |
6 |
3 |
5 |
数据结构 |
7 |
4 |
6 |
数据处理 |
2 |
|
7 |
PASCAL语言 |
6 |
4 |
(b)
SC表(学生选课表)
学号 |
课程号 |
成绩 |
Sno |
Cno |
Grade |
201215121 |
1 |
92 |
201215121 |
2 |
85 |
201215121 |
3 |
88 |
201215122 |
2 |
90 |
201215122 |
3 |
80 |
(c)
图3.2 学生-课程数据库的数据示例