使用MySQL完成并解释学生成绩管理系统常见操作

学生表:

| 字段 | 类型 | 描述 | |---|---|---| | id | int | 学生ID | | name | varchar(20) | 学生姓名 | | age | int | 学生年龄 | | department | varchar(20) | 学生院系 | | province | varchar(20) | 学生省份 |

成绩表:

| 字段 | 类型 | 描述 | |---|---|---| | id | int | 成绩ID | | student_id | int | 学生ID | | subject | varchar(20) | 考试科目 | | score | int | 考试成绩 |

向两个表中插入数据:

... (省略插入数据的具体SQL语句)

常见SQL语句操作:

  1. 从student表中查询每个院系有多少人
SELECT department, COUNT(*) FROM student GROUP BY department;

解释:从student表中选择院系和每个院系的人数,使用GROUP BY对每个院系分组,并使用COUNT函数统计每个组中的记录数。

  1. 从score表中查询每个科目的最高分
SELECT subject, MAX(score) FROM score GROUP BY subject;

解释:从score表中选择科目和每个科目的最高分,使用GROUP BY对每个科目分组,并使用MAX函数获取每个组中的最大值。

  1. 查询李四的考试科目和考试成绩
SELECT subject, score FROM score WHERE student_id=(SELECT id FROM student WHERE name='李四');

解释:从score表中选择李四的考试科目和考试成绩,先在student表中查询李四的id,再在score表中查询该学生的成绩信息。

  1. 查询所有学生的信息和考试信息
SELECT * FROM student JOIN score ON student.id=score.student_id;

解释:从student表和score表中选择所有列,使用JOIN连接两个表,连接条件为student表中的id等于score表中的student_id。

  1. 计算每个学生的总成绩
SELECT student_id, SUM(score) AS total_score FROM score GROUP BY student_id;

解释:从score表中选择学生id和对应的总成绩,使用SUM函数计算每个学生的总成绩,使用GROUP BY对每个学生分组。

  1. 计算每个考试科目的平均成绩
SELECT subject, AVG(score) AS avg_score FROM score GROUP BY subject;

解释:从score表中选择科目和平均成绩,使用AVG函数计算每个科目的平均成绩,使用GROUP BY对每个科目分组。

  1. 查询计算机成绩低于95的学生信息
SELECT * FROM student JOIN score ON student.id=score.student_id WHERE score.subject='计算机' AND score.score<95;

解释:从student表和score表中选择所有列,使用JOIN连接两个表,连接条件为student表中的id等于score表中的student_id,筛选出计算机成绩低于95的学生信息。

  1. 将计算机考试成绩按从高到低进行排序
SELECT * FROM score WHERE subject='计算机' ORDER BY score DESC;

解释:从score表中选择所有列,筛选出计算机科目的成绩信息,使用ORDER BY将成绩按照从高到低排序。

  1. 查询姓张或姓王的学生的姓名、院系和考试科目及成绩
SELECT student.name, student.department, score.subject, score.score FROM student JOIN score ON student.id=score.student_id WHERE student.name LIKE '张%' OR student.name LIKE '王%';

解释:从student表和score表中选择学生姓名、院系、考试科目和成绩,使用JOIN连接两个表,连接条件为student表中的id等于score表中的student_id,筛选出姓张或姓王的学生信息。

  1. 查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩
SELECT student.name, student.age, student.department, score.subject, score.score FROM student JOIN score ON student.id=score.student_id WHERE student.province='湖南';

解释:从student表和score表中选择学生姓名、年龄、院系、考试科目和成绩,使用JOIN连接两个表,连接条件为student表中的id等于score表中的student_id,筛选出省份为湖南的学生信息。

MySQL学生成绩管理系统:常用SQL语句详解

原文地址: https://www.cveoy.top/t/topic/ozEX 著作权归作者所有。请勿转载和采集!

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