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 '%湖南省%';
相关推荐
噢,我明白了36 分钟前
java中唯一键和幂等键的应用
java·后端
程序猿乐锅42 分钟前
【黑马点评 | 第八篇】Redisson分布式锁
java·数据库·spring boot·redis·分布式·spring·缓存
Leo.yuan1 小时前
2026年本地化Data Agent优质厂商盘点:哪些产品更适合企业生产环境
大数据·数据库·人工智能
考虑考虑1 小时前
synchronized字符串常量
java·后端·java ee
长谷深风1111 小时前
Tool与Skill:AI能力设计的分水岭
java·人工智能·ai·大模型·aiagent
m0_587383001 小时前
广州24小时自助健身房解决方案实战指南与系统部署要点
java·spring·小程序·架构·需求分析
做运维的阿瑞1 小时前
数据库增删改的安全写法
数据库·sql·mysql
Escalating_xu1 小时前
【C 语言】深入理解指针(1·下):指针运算、野指针、assert 与传址实战
java·c语言·开发语言
程序边界1 小时前
迁移评估不再拍脑袋,这个数据迁移工具的量化报告把我救了(上)
数据库
周杰偷奶茶2 小时前
【Java】数据类型与变量
java·开发语言