zoukankan      html  css  js  c++  java
  • MySQL经典练习题(二)

    1、查询Score表中的最高分的学生学号和课程号。

    select sno,cno,degree

    from score

    where DEGREE = (select max(DEGREE)max_grade from score )

    2、查询‘3-105’号课程的平均分。

    select cno,avg(DEGREE) avg_grade

    from score

    where cno ='3-105'

    3、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。

    select cno,avg(degree) avg_grade

    from score

    where cno like "3%"

    group by cno

    having count(*)>5

    4、查询最低分大于70,最高分小于90的Sno列。

    -- 不去重,可能某个sno的学生的多门课程满足该条件

    select sno

    from score

    group by degree

    having min(degree) >70 and max(degree)<90

    -- 去重,因为最终结果只是需要sno列,所以可以去重处理

    select DISTINCT sno

    from score

    group by degree

    having min(degree) >70 and max(degree)<90

    5、查询所有学生的Sname、Cno和Degree列。

    -- 方法一

    select sname,cno,degree

    from student s , score sc

    where s.sno = sc.sno

    -- 方法二

    select sname,cno,degree

    from  student s inner join  score sc

    on s.sno = sc.sno

    -- 方法三

    select sname,cno,degree

    from  student s  join  score sc

    on s.sno = sc.sno

    6、查询所有学生的Sno、Cname和Degree列。

    -- 方法一

    select sno,cname,degree

    from score s ,course c

    where s.cno =c.cno

    -- 方法二

    select sno,cname,degree

    from score s inner join course c

    on s.cno =c.cno

    -- 方法三

    select sno,cname,degree

    from score s  join course c

    on s.cno =c.cno

    7、查询所有学生的Sname、Cname和Degree列。

    -- 方法一

    select sname,cname,degree

    from student s , course c, score sc

    where c.cno = sc.cno and sc.sno = s.sno

    -- 方法二

    select sname,cname,degree

    from student s inner join course c inner join score sc

    on c.cno = sc.cno and sc.sno = s.sno

    -- 方法三

    select sname,cname,degree

    from student s  join course c  join score sc

    on c.cno = sc.cno and sc.sno = s.sno

    8、查询“95033”班所选课程的平均分。

    -- 方法一

    select class,avg(degree) avg_grade

    from score sc ,student s

    where sc.sno = s.sno and class ='95033'

    -- 方法二

    select class,avg(degree) avg_grade

    from score sc inner join student s

    on sc.sno = s.sno

    where class ='95033'

    -- 方法三

    select class,avg(degree) avg_grade

    from score sc  join student s

    on sc.sno = s.sno

    where class ='95033'

    -- 方法四

    select class,avg(degree) avg_grade

    from score sc  join student s

    on sc.sno = s.sno and class ='95033'

    -- 方法五

    select class,avg(degree) avg_grade

    from score sc  inner join student s

    on sc.sno = s.sno and class ='95033'

    9、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。

    select *

    from score

    where cno ="3-105" and degree >(select max(degree)  from score where sno ='109')

    10、查询score中的同学中分数为非最高分成绩的记录。

    -- 方法一

    select *

    from score

    where degree != (select max(degree) from score )

    -- 方法二

    select *

    from score

    where degree <> (select max(degree) from score )

    11、假设使用如下命令建立了一个grade表:

    create table grade(low NUMERIC(10, 1),upp NUMERIC(10, 1),rank char(1));

    insert into grade values(90,100,'A');

    insert into grade values(80,89,'B');

    insert into grade values(70,79,'C');

    insert into grade values(60,69,'D');

    insert into grade values(0,59,'E');

    现查询所有同学的Sno、Cno和rank列。

    方法一:

    select sno,cno,degree,rank

    from score ,grade

    where degree between low and upp;

    -- 方法二:

    select sno,cno,degree,rank

    from score inner join grade

    on degree between low and upp;

    -- 方法三:

    select sno,cno,degree,rank

    from score join grade

    on degree between low and upp;

    -- 方法四:

    select sno,cno,degree,rank

    from score join grade

    on degree >= low and degree <= upp;

    -- 方法五:

    select sno,cno,degree,rank

    from score,grade

    where degree >= low and degree <= upp;

    -- 方法六:

    select sno,cno,degree,rank

    from score inner join grade

    on degree >= low and degree <= upp;

    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    【Git】git使用
    【Git】git使用
    【Git】git使用
    【spring boot】SpringBoot初学(8)– 简单整合redis
    「Flink」使用Managed Keyed State实现计数窗口功能
    「Flink」Flink的状态管理与容错
    「数据挖掘入门序列」数据挖掘模型分类与预测
    「Flink」使用Java lambda表达式实现Flink WordCount
    Java 8 函数式编程
    「数据挖掘入门系列」数据挖掘模型之分类和预测
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14938765.html
Copyright © 2011-2022 走看看