成绩管理系统数据操作

https://www.shiyanlou.com/courses/9/learning/?id=2770

成绩管理系统的数据操作

介绍

在挑战实验1中构建的成绩管理系统中,物理老师想要找出分数最高的同学进行表扬,请你找出这个同学并把他的信息(id、姓名、性别)输出到路径 /var/lib/mysql-files/ 下的 physics.txt 文件中。同时 Tom 的化学成绩有异议,需要在原来的基础上加3分,请更新 Tom 的化学成绩。

创建成绩管理系统数据库的代码在 createdb.sql 中,请打开 Xfce 终端输入下载代码:

wget http://labfile.oss.aliyuncs.com/courses/9/createdb.sql

下载的文件将保存在 /home/shiyanlou/ 目录下。

数据库 gradesystem 中有三张表分别用于记录学生信息、课程信息和成绩信息。

数据库表的数据如下:

  • 学生表(student):学生 id 、学生姓名和性别

  • 课程表(course):课程 id 和课程名

  • 成绩表(mark):成绩 id 、学生 id 、课程 id 和分数

服务器中的 MySQL 还没有启动,请注意 MySQL 的 root 账户默认密码为空。

目标

1.MySQL 服务处于运行状态

2.下载运行 createdb.sql 文件,完成数据库的建立

3.找出物理(physics)分数最高的同学,并把他的信息(id、姓名、性别)输出到路径 /var/lib/mysql-files/ 下的 physics.txt 文件中

4.修改 Tom 的化学(chemistry)成绩,在原来的基础上加3分

提示

  • 执行 .sql 文件
  • 查询与子查询操作
  • order by 排序
  • into outfile:将查询结果输出到文件
  • update 更新操作

挑战参考代码

以下内容仅供参考,为了能有更好的学习效果,请尽量按自己的想法来完成练习题。

$ sudo service mysql start

$ mysql -u root

mysql> source /home/shiyanlou/createdb.sql

mysql> SELECT s.sid,s.sname,s.gender FROM student s,( SELECT m.sid,m.cid,m.score FROM mark m,course c WHERE m.cid = c.cid AND c.cname='physics' ORDER BY m.score DESC LIMIT 1) t WHERE s.sid = t.sid INTO OUTFILE '/var/lib/mysql-files/physics.txt';

mysql> UPDATE mark m,student s,course c SET m.score = m.score+3 WHERE m.sid = s.sid AND s.sname = 'Tom' AND m.cid = c.cid AND c.cname = 'chemistry';

你可能感兴趣的:(MySQL)