关系型数据库设计:学生、课程、选课关系
关系型数据库设计:学生、课程、选课关系
本文将介绍如何设计一个关系型数据库,包含学生、课程以及学生选课这三者之间的关系。
设计文档
-
学生表 S (学号 Sno, 姓名 Sname, 性别 Sex, 年龄 Age)
- Sno: 字符型 (主键)
- Sname: 字符型
- Sex: 字符型
- Age: 整型
-
课程表 C (课程号 Cno, 课程名 Cname, 学分 Credit, 教师 Teacher)
- Cno: 字符型 (主键)
- Cname: 字符型
- Credit: 浮点型
- Teacher: 字符型
-
学生选课表 SC (学号 Sno, 课程号 Cno, 成绩 Grade)
- Sno: 字符型 (外键参考学生表 S 的学号)
- Cno: 字符型 (外键参考课程表 C 的课程号)
- Grade: 浮点型
创建关系表的 SQL 语句
CREATE TABLE S (
Sno CHAR(10) PRIMARY KEY,
Sname VARCHAR(50),
Sex CHAR(1),
Age INT
);
CREATE TABLE C (
Cno CHAR(10) PRIMARY KEY,
Cname VARCHAR(50),
Credit FLOAT,
Teacher VARCHAR(50)
);
CREATE TABLE SC (
Sno CHAR(10),
Cno CHAR(10),
Grade FLOAT,
PRIMARY KEY (Sno, Cno),
FOREIGN KEY (Sno) REFERENCES S(Sno),
FOREIGN KEY (Cno) REFERENCES C(Cno)
);
插入数据记录的 SQL 语句
INSERT INTO S (Sno, Sname, Sex, Age) VALUES ('S001', '张三', 'M', 20);
INSERT INTO S (Sno, Sname, Sex, Age) VALUES ('S002', '李四', 'F', 22);
INSERT INTO S (Sno, Sname, Sex, Age) VALUES ('S003', '王五', 'M', 21);
INSERT INTO C (Cno, Cname, Credit, Teacher) VALUES ('C001', '数学', 3.0, '李老师');
INSERT INTO C (Cno, Cname, Credit, Teacher) VALUES ('C002', '英语', 2.5, '张老师');
INSERT INTO C (Cno, Cname, Credit, Teacher) VALUES ('C003', '计算机科学', 4.0, '王老师');
INSERT INTO SC (Sno, Cno, Grade) VALUES ('S001', 'C001', 85.5);
INSERT INTO SC (Sno, Cno, Grade) VALUES ('S001', 'C002', 90.0);
INSERT INTO SC (Sno, Cno, Grade) VALUES ('S002', 'C001', 78.0);
INSERT INTO SC (Sno, Cno, Grade) VALUES ('S002', 'C003', 92.5);
INSERT INTO SC (Sno, Cno, Grade) VALUES ('S003', 'C002', 88.0);
注意: 在某个 DBMS 软件平台下,可能需要根据具体的 DBMS 进行语法上的微调或调整。
请提供您使用的具体 DBMS 软件平台,以便我们为您提供运行结果截图。
原文地址: https://www.cveoy.top/t/topic/bbZU 著作权归作者所有。请勿转载和采集!