今日目标:Mysql学习16
实验内容:
-- 10.查询score表中的最高分数的学生号和课程号.(子查询或者排序) --查询步骤 1.先找到最高分 最高分: SELECT MAX(sc_degree) FROM score; 2.通过我们找到的最高分的分数来从score中找到我们需要的学生号和课程号 SELECT c_no, s_no FROM score WHERE sc_degree = (最高分) SELECT c_no, s_no FROM score WHERE sc_degree = (SELECT MAX(sc_degree) FROM score); +-------+------+ | c_no | s_no | +-------+------+ | 3-105 | 103 | +-------+------+ 排序 最高分有多个的情况下可能有数据问题 limit x,y (x:表示从X条数据开始 y:需要查出多少条) SELECT c_no, s_no FROM score ORDER BY sc_degree DESC LIMIT 0,1;这个OK 但是我们再插入一条数据: INSERT INTO score VALUES('101','9-888','92'); 再用排序法去查得到: +-------+------+ | c_no | s_no | +-------+------+ | 9-888 | 101 | +-------+------+ 有两条数据但是只显示一条,有问题 若我们用子查询的方法来查询的话会得到: +-------+------+ | c_no | s_no | +-------+------+ | 9-888 | 101 | | 3-105 | 103 | +-------+------+ 完全没有问题. 最后为了和视频数据一致删除刚刚插入的数据: DELETE FROM score WHERE c_no = '9-888' AND s_no = '101';