zoukankan      html  css  js  c++  java
  • 99作业讲解

    student.sql

    一、查询每个专业的学生人数

    select count(studentno),majorid

    from student

    group by majorid;

    二、查询参加考试的学生中,每个学生的平均分、最高分

    select studentno,avg(score),max(score)

    from result

    group by studentno;

    三、查询姓张的每个学生的最低分大于60的学号、姓名

    select s.studentno,studentname,min(score)  #这里要用s.studentno或r.studentno,不能只用studentno,因为inner join后得到的表有两个名为studentno的列,studentname前面不用加:(表.studentname),因为inner join得到的表只有一个studentname列

    from student s

    inner join result r

    on s.studentno = r.studentno

    where studentname like '张%' 

    group by studentno,studentname

    having min(score) > 60;

    四、查询每个专业生日在“1988-1-1”后的学生姓名、专业名称

    select studentname,majorname

    from student

    left outer join major  #这里用左外连接是考虑到:假如student表中有个majorid=9,而major表中majorid in (1,2,3).当然此题inner join也可以

    on student.majorid = major.majorid

    where datediff(borndate,'1988-1-1') > 0;

    五、查询每个专业的男生人数和女生人数分别是多少

    select count(studentno),sex

    from student

    group by sex,majorid;

    #方式2:

    select majorid,

    (select count(*) from student where sex='男' and majorid = s.majorid) 男,

    (select count(*) from student where sex='女' and majorid = s.majorid) 女

    from student s  #必须要取别名才有效

    group by majorid;

    六、查询专业和张翠山一样的,学生的最低分

    select min(score),majorid,studentno

    from student

    where majorid = (

    select majorid

    from student

    where studentname = '张翠山'

    )

    group by studentno;

    七、查询大于60分(result表中)的学生的姓名、密码(student表中)、专业名(major表中)

    select studentname,loginpwd,majorname,tab_1.studentno,score

    from

      (select studentname,loginpwd,majorname,studentno

    from student

    inner join major

    on student.majorid = major.majorid

    group by studentno) as tab_1

    left outer join result

    on tab_1.studentno = result.studentno

    where score > 60;

    八、按邮箱位数分组,查询每组的学生个数

    select count(*),length(email)

    from student

    group by length(email);

    九、查询学生名(student表中)、专业名(major表中)、分数(result表中)

    select studentname,majorname,score

    from

      (

    select studentname,majorname,studentno

    from student

    left outer join major

    on student.majorid = major.majorid

        ) as stu_maj

    left outer join result

    on result.studentno = stu_maj.studentno;

    十、查询哪个专业(major表中)没有学生(student表中),分别用左连接和右连接实现

    select majorname

    from student

    left outer join major

    on student.majorid = major.majorid

    group by majorname

    having count(*) = 0;

    十一、查询没有成绩的学生人数

    select count(*)

    from student

    left outer join result

    on student.studentno = result.studentno

    where score is null;

  • 相关阅读:
    表单提交原来是这句 return啊
    jquery控制table列.rar
    iframe 大数据量传参 本地能调用远程页面 不存在跨域问题 js组件调用原理
    public string GetUrltoHtml(string Url)
    一个xml转html的小程序 别人一个毕业设计【难度:简单】
    铭万轮换广告组件
    C#操作 ini文件类【转】
    捕捉浏览器的刷新与关闭 兼容ie、ff(火狐)
    列表循环 float:left marginright:10px 如何对齐右边距小技巧
    access 双表连接代码
  • 原文地址:https://www.cnblogs.com/tan-y-q/p/10584750.html
Copyright © 2011-2022 走看看