关系型数据库设计:学生、课程、选课关系

本文将介绍如何设计一个关系型数据库,包含学生、课程以及学生选课这三者之间的关系。

设计文档

  1. 学生表 S (学号 Sno, 姓名 Sname, 性别 Sex, 年龄 Age)

    • Sno: 字符型 (主键)
    • Sname: 字符型
    • Sex: 字符型
    • Age: 整型
  2. 课程表 C (课程号 Cno, 课程名 Cname, 学分 Credit, 教师 Teacher)

    • Cno: 字符型 (主键)
    • Cname: 字符型
    • Credit: 浮点型
    • Teacher: 字符型
  3. 学生选课表 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录