天天看点

实验楼sql进阶之成绩管理系统的数据操作(window)

背景

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

有三个表

  • 学生表(student):学生 id 、学生姓名和性别
  • 课程表(course):课程 id 和课程名
  • 成绩表(mark):成绩 id 、学生 id 、课程 id 和分数

目标

  • 1.MySQL 服务处于运行状态
  • 2.下载运行 createdb.sql 文件,完成数据库的建立
  • 3.找出物理(physics)分数最高的同学,并把他的信息(id、姓名、性别)输出到路径 /tmp/ 下的 physics.txt文件中
  • 4.修改 Tom 的化学(chemistry)成绩,在原来的基础上加3分

提示

  • 执行 .sql 文件

    1.1导入

    实验楼sql进阶之成绩管理系统的数据操作(window)
    1.2查看数据库
    实验楼sql进阶之成绩管理系统的数据操作(window)
    1.3查看表格
    实验楼sql进阶之成绩管理系统的数据操作(window)
  • 查询与子查询操作

    where的写法

    实验楼sql进阶之成绩管理系统的数据操作(window)
    join的写法
    实验楼sql进阶之成绩管理系统的数据操作(window)
    很复杂并且答案有问题的方法
    实验楼sql进阶之成绩管理系统的数据操作(window)
  • into outfile:将查询结果输出到文件
    实验楼sql进阶之成绩管理系统的数据操作(window)
  • update 更新操作
    实验楼sql进阶之成绩管理系统的数据操作(window)
    实验楼sql进阶之成绩管理系统的数据操作(window)

扩展

  • order by的用法

    使用order by,,依照查询结果的某一列(或多列)属性,进行排序(升序:ASC;降序:DESC;默认为升序)。

  • GROUP BY子句的作用对象是查询的中间结果表

    分组方法:按指定的一列或多列值分组,值相等的为一组。

    使用GROUP BY子句后,SELECT子句的列名列表中只能出现分组属性和集函数(count())。

    总结:一个用来排序的,一个用来求中间结果集的。