MySQL是一种可靠的关系型数据库管理系统,广泛应用于许多领域,包括学生成绩管理。下面我们将介绍如何使用MySQL计算学生总成绩。
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `score` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`student_id` int(11) NOT NULL,
`course_name` varchar(255) NOT NULL,
`score` float NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_student_id` (`student_id`),
CONSTRAINT `fk_student_id` FOREIGN KEY (`student_id`) REFERENCES `student` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
上述代码创建了两个表格:student和score。student存储学生信息,score存储学生各门课程的成绩。
INSERT INTO `student` (`name`) VALUES ('小红');
INSERT INTO `student` (`name`) VALUES ('小明');
INSERT INTO `score` (`student_id`, `course_name`, `score`) VALUES (1, '数学', 80);
INSERT INTO `score` (`student_id`, `course_name`, `score`) VALUES (1, '语文', 75);
INSERT INTO `score` (`student_id`, `course_name`, `score`) VALUES (2, '英语', 90);
INSERT INTO `score` (`student_id`, `course_name`, `score`) VALUES (2, '数学', 70);
向student和score表中插入了4条数据,包括两位学生的个人信息和各自的成绩。
SELECT
s.name,
SUM(sc.score) AS total_score
FROM
student s
JOIN score sc ON s.id = sc.student_id
GROUP BY
s.name;
上述代码计算了每位学生的总成绩,并按照学生姓名进行分组。
通过以上代码,我们可以轻松使用MySQL计算学生总成绩,实现学生成绩管理的基本功能。