• mysql作业


    1、查询所有的课程的名称以及对应的任课老师姓名
    select cname,tname from course left join teacher on course.teacher_id=teacher.tid;
    2、查询学生表中男女生各有多少人
    select gender,count(sid) from student group by gender;
    3、查询物理成绩等于100的学生的姓名
    #子查询的方式
    select sname from student where sid in
    (
    select student_id from score
        where course_id = (select cid from course where cname='物理') and num=100
    );
    #连表的方式
    select sname from student inner join
    (
    select student_id from score
        where course_id = (select cid from course where cname='物理') and num=100
    ) as a
    on a.student_id=student.sid
    ;
    
    4、查询平均成绩大于八十分的同学的姓名和平均成绩
    select student.sname,t1.平均成绩 from student inner join
    (select student_id,avg(num) 平均成绩 from score group by student_id having avg(num) > 80) as t1
    on student.sid=t1.student_id;
    5、查询所有学生的学号,姓名,选课数,总成绩
    select student.sid,sname 学生名,选课数,总成绩 from student left join
    (select student_id,count(course_id) 选课数,sum(num) 总成绩 from score group by student_id) as t1
    on student.sid=t1.student_id
    ;
    6、 查询姓李老师的个数
    select count(tid) from teacher where tname like '李%';
    
    7、 查询没有报李平老师课的学生姓名
    select sname from student where sid not in (
    select distinct student_id from score where course_id in (
    select cid from course where teacher_id=(select tid from teacher where tname='李平老师')
    )
    );
    8、 查询物理课程比生物课程高的学生的学号
    select t1.student_id from
    (select student_id,num from score inner join course on score.course_id=course.cid
     where course.cname='物理') as t1
     inner join
    (select student_id,num from score inner join course on score.course_id=course.cid
    where course.cname='生物') as t2
    on t1.student_id=t2.student_id
    where t1.num > t2.num
    ;
    9、 查询没有同时选修物理课程和体育课程的学生姓名
    select sname from student where sid in (
    select student_id from score inner join cour
    on course.cname in ('物理','体育') and course.cid=score.course_id
    group by student_id having count(course_id) !=2
    );
    10、查询挂科超过两门(包括两门)的学生姓名和班级名字
    select t2.sname,class.caption from
    (select sname,class_id from student inner join (
    select student_id from score
    where num < 60 group by student_id having count(course_id) >=2
    ) as t1
    on student.sid=t1.student_id) as t2
    inner join class
    on class.cid = t2.class_id
    ;
    11 、查询选修了所有课程的学生姓名
    select sname from student inner join
    (
    select student_id from score group by student_id having count(course_id) = (select count(cid) from course)
    ) t1
    on t1.student_id = student.sid
    ;
    12、查询李平老师教的课程的所有成绩记录
    select student_id,course_id,num from score inner join
    (
    select cid from course inner join teacher on teacher.tname='李平老师' and teacher.tid=course.teacher_id
    ) as t1
    on t1.cid=score.course_id
    ;
    
    13、查询全部学生都选修了的课程号和课程名
    select course.cid,course.cname from course inner join
    (
    select course_id from score group by course_id
    having count(student_id) = (select count(sid) from student)
    ) t1
    on t1.course_id=course.cid
    ;
    
    14、查询每门课程被选修的次数
    select course.cname,选修人数 from course inner join
    (
    select course_id,count(student_id) as 选修人数 from score group by course_id
    ) as t1
    on t1.course_id=course.cid
    ;
    15、查询之选修了一门课程的学生姓名和学号
    select sid,sname from student inner join
    (
    select student_id from score group by student_id having count(course_id)=1
    ) t1
    on t1.student_id = student.sid
    ;
    16、查询所有学生考出的成绩并按从高到低排序(成绩去重)
    select distinct num from score order by num desc;
    
    17、查询平均成绩大于85的学生姓名和平均成绩
    select student.sname,avg_num from student inner join
    (
    select student_id,avg(num) as avg_num from score group by student_id having avg(num) > 85
    ) t1
    on student.sid=t1.student_id
    ;
    
    18、查询生物成绩不及格的学生姓名和对应生物分数
    select student.sname,t1.num from student inner join
    (
    select student_id,num from score
    where course_id=(select cid from course where cname='生物') and num < 60
    ) t1
    on t1.student_id=student.sid
    ;
    19、查询在所有选修了李平老师课程的学生中,这些课程(李平老师的课程,不是所有课程)平均成绩最高的学生姓名
    
    select sname from student where sid =
    (
    select student_id from score where course_id in
    (
    select cid from course inner join teacher on teacher.tname='李平老师' and course.teacher_id=teacher.tid
    )
    group by student_id
    order by avg(num) desc
    limit 1
    );
  • 相关阅读:
    iframe页面调用父窗口JS函数
    href超级链接里加上javascript代码的,还有target问题
    IE上的兼容性调整问题烦死啦
    如何在java web工程下建立存储property文件的文件夹,让Java程序直接读取
    当是class com.cosl.po.Pc$$EnhancerByCGLIB$$38c58f03时,反射属性都他妈不好用了
    好奇怪啊,如果邮箱JSON格式的字符串不是在一行上,那么转为JSON将转换不成功,估计是数据格式有问题吧
    flexpaper上传带中文名字的文档,在页面显示若出现404错误时,请在server.xml文件中进行编码utf-8
    loger4j时间一长,就不向数据库里写日志啦,然而重新启动工程后就可以再次向数据库写日志,好奇怪
    直接在filter过滤器代码里加org.apache.struts2.ServletActionContext.getRequest()会出现空指针情况
    ssh框架从页面传中文发生乱码时怎么解决,就是添加一个字符编码拦截器。用springframework自带的便可
  • 原文地址:https://www.cnblogs.com/ldq1996/p/7682983.html
Copyright © 2020-2023  润新知