实验楼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导入
1.2查看数据库
1.3查看表格 - 查询与子查询操作
where的写法
join的写法
很复杂并且答案有问题的方法 -
into outfile:将查询结果输出到文件
-
update 更新操作
扩展
-
order by的用法
使用order by,,依照查询结果的某一列(或多列)属性,进行排序(升序:ASC;降序:DESC;默认为升序)。
-
GROUP BY子句的作用对象是查询的中间结果表
分组方法:按指定的一列或多列值分组,值相等的为一组。
使用GROUP BY子句后,SELECT子句的列名列表中只能出现分组属性和集函数(count())。
总结:一个用来排序的,一个用来求中间结果集的。