MySQL学生成绩管理系统实战操作

一、建库建表

sql 复制代码
mysql> USE mydb11_stu;
Database changed

mysql> CREATE TABLE student(
    ->     id INT(10) NOT NULL UNIQUE PRIMARY KEY,
    ->     name VARCHAR(20) NOT NULL,
    ->     sex VARCHAR(4),
    ->     birth YEAR,
    ->     department VARCHAR(20),
    ->     address VARCHAR(50)
    -> );
Query OK, 0 rows affected (0.04 sec)

mysql> CREATE TABLE score(
    ->     id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT,
    ->     stu_id INT(10) NOT NULL,
    ->     c_name VARCHAR(20),
    ->     grade INT(10)
    -> );
Query OK, 0 rows affected (0.03 sec)

二、向表中插入数据

sql 复制代码
mysql> INSERT INTO student VALUES(901,'张三丰','男',2002,'计算机系','北京市海淀区');
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO student VALUES(902,'周全有','男',2000,'中文系','北京市昌平区');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO student VALUES(903,'张思维','女',2003,'中文系','湖南省永州市');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO student VALUES(904,'李广昌','男',1999,'英语系','辽宁省阜新市');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO student VALUES(905,'王翰','男',2004,'英语系','福建省厦门市');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO student VALUES(906,'王心凌','女',1998,'计算机系','湖南省衡阳市');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO score VALUES(NULL,901,'计算机',98);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO score VALUES(NULL,901,'英语',80);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO score VALUES(NULL,902,'计算机',65);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO score VALUES(NULL,902,'中文',88);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO score VALUES(NULL,903,'中文',95);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO score VALUES(NULL,904,'计算机',70);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO score VALUES(NULL,904,'英语',92);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO score VALUES(NULL,905,'英语',94);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO score VALUES(NULL,906,'计算机',49);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO score VALUES(NULL,906,'英语',83);
Query OK, 1 row affected (0.00 sec)

三、查询题目解答

(1) 分别查询student表和score表的所有记录

sql 复制代码
mysql> SELECT * FROM student;
mysql> SELECT * FROM score;

(2) 查询student表的第2条到5条记录 分页limit 偏移量,条数

sql 复制代码
mysql> SELECT * FROM student LIMIT 1,4;

(3) 查询计算机系和英语系的学生信息

sql 复制代码
mysql> SELECT * FROM student WHERE department IN ('计算机系','英语系');

(4) 查询年龄小于22岁学生信息 年份计算:2026-birth <22

sql 复制代码
mysql> SELECT * FROM student WHERE 2026 - birth < 22;

(5) 查询每个院系人数

sql 复制代码
mysql> SELECT department,COUNT(id) AS 人数 FROM student GROUP BY department;

(6) 查询每个科目最高分

sql 复制代码
mysql> SELECT c_name,MAX(grade) AS 最高分 FROM score GROUP BY c_name;

(7) 查询李广昌的考试科目和成绩

sql 复制代码
mysql> SELECT c_name,grade FROM score s JOIN student st ON s.stu_id=st.id WHERE st.name='李广昌';

(8) 连接查询所有学生信息+考试信息

sql 复制代码
mysql> SELECT st.*,s.c_name,s.grade FROM student st LEFT JOIN score s ON st.id=s.stu_id;

(9) 计算每个学生总成绩

sql 复制代码
mysql> SELECT st.id,st.name,SUM(s.grade) AS 总成绩 FROM student st LEFT JOIN score s ON st.id=s.stu_id GROUP BY st.id,st.name;

(10) 计算每个科目平均成绩

sql 复制代码
mysql> SELECT c_name,AVG(grade) AS 平均成绩 FROM score GROUP BY c_name;

(11) 查询计算机成绩低于95的学生信息

sql 复制代码
mysql> SELECT DISTINCT st.* FROM student st JOIN score s ON st.id=s.stu_id WHERE s.c_name='计算机' AND s.grade <95;

(12) 计算机成绩从高到低排序

sql 复制代码
mysql> SELECT st.name,s.grade FROM student st JOIN score s ON st.id=s.stu_id WHERE s.c_name='计算机' ORDER BY s.grade DESC;

(13) 两表查学号,合并结果 union去重

sql 复制代码
mysql> SELECT id FROM student UNION SELECT stu_id FROM score;

(14) 姓张/姓王 姓名、院系、科目、成绩

sql 复制代码
mysql> SELECT st.name,st.department,s.c_name,s.grade FROM student st LEFT JOIN score s ON st.id=s.stu_id WHERE st.name LIKE '张%' OR st.name LIKE '王%';

(15) 湖南学生:姓名、年龄、院系、科目、成绩

sql 复制代码
mysql> SELECT st.name,2026-st.birth AS 年龄,st.department,s.c_name,s.grade FROM student st LEFT JOIN score s ON st.id=s.stu_id WHERE st.address LIKE '%湖南省%';
相关推荐
Y3815326625 小时前
MySQL 慢查询排查实战:EXPLAIN 看懂 type 与 Extra,一个字段定位性能问题
数据库·mysql
xcl09255 小时前
幼儿托育系统开发实战:从需求分析到上线全流程指南
java·大数据·需求分析
吴声子夜歌6 小时前
ApacheCommons——commons-cli(命令行参数解析)
java·开发语言·apache
小小猪的春天6 小时前
Java 手写第一个 MCP Server:Spring AI MCP 半小时跑通
java·人工智能·spring boot·ai编程
find1star6 小时前
LeetCode 141:环形链表
java·算法·leetcode·链表
Logintern096 小时前
PostgreSQL 的 ORDER BY 多列排序
数据库·postgresql
今天AI了吗6 小时前
DeepSeek Harness 深度解析:从评测架构到实战落地
java·网络·数据库·人工智能·架构·java-ee
数据库小学妹7 小时前
为什么MySQL索引用B+树?从存储底层讲透原理
数据库·mysql·b+树·索引优化·磁盘io·数据库原理
许彰午7 小时前
27-AuthService登录链路
java·低代码·架构
泡海椒7 小时前
JQuick-Curl 性能分析:并发场景下的性能表现与调优,第三方接口调用不只要快写也要稳跑
java·开发语言·okhttp