MySQL创建学生、课程及选课表

MySQL是一种广泛使用的关系型数据库管理系统,常用于Web应用程序开发和数据存储。本文将介绍如何使用MySQL创建学生表、课程表以及选课表,并提供相应的代码示例。

学生表

学生表用于存储学生的基本信息,例如学生ID、姓名、性别、年龄等。

创建学生表的SQL语句如下:

CREATE TABLE student (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    gender ENUM('男', '女') NOT NULL,
    age INT NOT NULL
);

上述代码创建了一个名为student的表,包括四个字段:idnamegenderage。其中,id为主键,自增;name为学生姓名,不能为空;gender为性别,只能为'男'或'女';age为年龄,不能为空。

课程表

课程表用于存储课程的信息,例如课程ID、课程名称、学分等。

创建课程表的SQL语句如下:

CREATE TABLE course (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    credit INT NOT NULL
);

上述代码创建了一个名为course的表,包括三个字段:idnamecredit。其中,id为主键,自增;name为课程名称,不能为空;credit为学分,不能为空。

选课表

选课表用于记录学生选修的课程,包括学生ID和课程ID。

创建选课表的SQL语句如下:

CREATE TABLE course_selection (
    student_id INT,
    course_id INT,
    PRIMARY KEY (student_id, course_id),
    FOREIGN KEY (student_id) REFERENCES student(id),
    FOREIGN KEY (course_id) REFERENCES course(id)
);

上述代码创建了一个名为course_selection的表,包括两个字段:student_idcourse_id。同时,将student_idcourse_id设置为联合主键,并分别与student表和course表建立外键关系。

数据库操作示例

下面是一些常见的数据库操作示例,用于在MySQL中对学生、课程和选课进行增、删、改和查。

插入学生信息

插入学生信息可以使用INSERT INTO语句。

INSERT INTO student (name, gender, age) VALUES ('张三', '男', 20);

上述代码将一个名为'张三'、性别为'男'、年龄为20的学生插入到student表中。

插入课程信息

插入课程信息也可以使用INSERT INTO语句。

INSERT INTO course (name, credit) VALUES ('数学', 4);

上述代码将一门名为'数学'、学分为4的课程插入到course表中。

选课操作

选课操作需要向course_selection表中插入一条记录。

INSERT INTO course_selection (student_id, course_id) VALUES (1, 1);

上述代码表示学生ID为1的学生选修了课程ID为1的课程。

查询学生选课信息

查询学生选课信息可以使用SELECT语句。

SELECT student.name, course.name 
FROM student 
JOIN course_selection ON student.id = course_selection.student_id
JOIN course ON course.id = course_selection.course_id;

上述代码将返回学生姓名和所选课程的名称。

序列图

下面是一个使用mermaid语法标识的选课流程的序列图示例:

sequenceDiagram
    participant 学生
    participant 课程
    participant 选课表

    学生 ->> 选课表: 选课
    选课表 ->> 课程: 获取课程信息
    课程 -->> 选课表: 返回课程信息
    选课表 ->> 学生: 返回选课结果

上述序列图表示学生选课的流程,包