MySQL查询练习题

成绩管理系统的数据操作

介绍

在挑战实验1中构建的成绩管理系统中,物理老师想要找出分数最高的同学进行表扬,请你找出这个同学并把他的信息(id、姓名、性别)输出到路径 /tmp/ 下的 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、姓名、性别)输出到路径 /tmp/ 下的 physics.txt文件中

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

提示

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

真确代码:

select c.sid,c.sname,c.gender into outfile '/tmp/physics.txt' from (select s1.sid,s1.sname,s1.gender from student s1 join (select sid,cid,score from mark where cid=(select cid from course where cname='physics') order by score desc limit 1) s2 on s1.sid=s2.sid) c;




update mark set score=score+3 where sid=(select sid from student where sname='Tom') and cid=(select cid from course where cname='chemistry');


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值