MySQL中创建三个表实现学生管理(mysql 三个表 学生)

MySQL中创建三个表实现学生管理

学生信息管理是教育管理中重要的一环。MySQL是一种常用的关系型数据库管理系统,可以用于存储和管理学生信息。本文将介绍如何利用MySQL创建三个表实现学生管理。

第一步:创建数据库

需要在MySQL中创建一个新的数据库。可以使用以下命令:

CREATE DATABASE `student`;

执行命令后,将创建一个名为“student”的数据库。接下来,需要使用以下命令切换到新数据库:

USE `student`;

此时,可以在该数据库中创建新的表格。

第二步:创建表格

在“student”数据库中,需要创建三个表格:学生表、科目表和成绩表。其中,学生表将记录具体的学生信息,科目表将存储所有科目名称,成绩表将记录每个学生在每个科目的具体成绩。以下是创建表格的具体操作。

1. 学生表的创建

CREATE TABLE `student_info` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘学号’,

`name` varchar(20) DEFAULT NULL COMMENT ‘姓名’,

`sex` varchar(10) DEFAULT NULL COMMENT ‘性别’,

`age` int(11) DEFAULT NULL COMMENT ‘年龄’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’学生信息表’;

注:这里采用InnoDB存储引擎,默认字符集为utf8mb4。

2. 科目表的创建

CREATE TABLE `subject_info` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘科目id’,

`name` varchar(20) DEFAULT NULL COMMENT ‘科目名称’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’科目信息表’;

3. 成绩表的创建

CREATE TABLE `grade_info` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘成绩id’,

`student_id` int(11) DEFAULT NULL COMMENT ‘学生id’,

`subject_id` int(11) DEFAULT NULL COMMENT ‘科目id’,

`grade` int(11) DEFAULT NULL COMMENT ‘成绩’,

PRIMARY KEY (`id`),

KEY `fk_student_id` (`student_id`),

KEY `fk_subject_id` (`subject_id`),

CONSTRNT `grade_info_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `student_info` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRNT `grade_info_ibfk_2` FOREIGN KEY (`subject_id`) REFERENCES `subject_info` (`id`) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’成绩信息表’;

注:这里“grade_info”表使用了外键约束,确保“student_id”列和“subject_id”列的值在“student_info”表和“subject_info”表中都存在,且可以进行级联删除和更新。

第三步:插入数据

在三个表格中插入数据,用于演示学生信息管理的操作。下面是具体的插入数据语句:

1. 向“student_info”表中插入数据

INSERT INTO `student_info` (`id`, `name`, `sex`, `age`) VALUES

(1, ‘张三’, ‘男’, 18),

(2, ‘李四’, ‘女’, 19),

(3, ‘王五’, ‘男’, 20);

2. 向“subject_info”表中插入数据

INSERT INTO `subject_info` (`id`, `name`) VALUES

(1, ‘数学’),

(2, ‘语文’),

(3, ‘英语’),

(4, ‘物理’),

(5, ‘化学’);

3. 向“grade_info”表中插入数据

INSERT INTO `grade_info` (`id`, `student_id`, `subject_id`, `grade`) VALUES

(1, 1, 1, 85),

(2, 1, 2, 90),

(3, 1, 3, 88),

(4, 2, 2, 95),

(5, 2, 3, 92),

(6, 2, 4, 80),

(7, 3, 1, 78),

(8, 3, 5, 85),

(9, 3, 2, 89);

第四步:查询数据

在插入数据后,可以执行查询语句,获取指定信息。下面是对学生、科目和成绩表的查询语句:

1. 查询“student_info”表中所有学生信息

SELECT * FROM student_info;

2. 查询“subject_info”表中所有科目名称

SELECT * FROM subject_info;

3. 查询某个学生在某科目的成绩

SELECT student_info.`name`,subject_info.`name`,grade_info.`grade`

FROM grade_info

LEFT JOIN student_info ON grade_info.`student_id`=student_info.`id`

LEFT JOIN subject_info ON grade_info.`subject_id`=subject_info.`id`

WHERE student_info.`name`=’张三’ AND subject_info.`name`=’数学’;

第五步:更新数据

在特定情况下,需要对学生、科目和成绩表格中的数据进行修改。以下是修改数据的操作语句:

1. 修改学生表中某个学生的年龄

UPDATE student_info SET age=19 WHERE name=’张三’;

2. 修改成绩表中某个学生的特定科目成绩

UPDATE grade_info SET grade=95 WHERE

student_id=(SELECT id FROM student_info WHERE name=’张三’)

AND subject_id=(SELECT id FROM subject_info WHERE name=’语文’);

第六步:删除数据

如果已经插入的数据不再需要,可以执行删除操作,将其从相应的表格中删除。以下是删除数据的语句:

1. 删除某个学生的全部信息

DELETE FROM student_info WHERE name=’张三’;

2. 删除某个学生在某科目的成绩记录

DELETE FROM grade_info WHERE

student_id=(SELECT id FROM student_info WHERE name=’张三’)

AND subject_id=(SELECT id FROM subject_info WHERE name=’英语’);

综上所述,本文介绍了如何使用MySQL创建三个表实现学生信息管理。通过本文的学习,读者可以了解MySQL中如何创建和管理数据表格,以及进行数据的增、删、查、改等操作。在实践中,读者可以结合具体需求,对学生信息管理系统进行进一步的定制化开发。


数据运维技术 » MySQL中创建三个表实现学生管理(mysql 三个表 学生)