zoukankan      html  css  js  c++  java
  • 数据库的有关知识==>>我们的血泪史之经典练习(1-2)

    今天给大家说说数据库的有关知识

    抒情一下,想在好困,真的,虽然我在这温暖的教室,身边有知心的盆友, ,很高兴还能是学生的一员,我们还年轻,我们也不会想的太多,高高兴兴上学,快快乐乐回家,每天吃的饱饱,听着老湿讲课,和童鞋打闹....还是幸福的,不是吗?好像有点精神了...

    学习:

    给大家说一下这些有关关键字的使用顺序和内部运行顺序(切记哟)

    下面以如何查询每门课程的平均分为例:

    使用顺序                                                                           内部运行顺序

    select SubjectId as 课程编号,AVG(studentresult) as 平均分    --04.投影结果
    from Result                                                                     --01.定位到表
    where SubjectId<3                                                          --02.分组前第一道过滤
    group by SubjectId                                                          --03.分组
    having COUNT(studentno)>3                                            --05.分组后第二道过滤
    order by 课程编号 desc                                                     --06.最后排序

    **************经典练习1*******************


    --01.查询每个年级的总学时数,并按照升序排列

    select GradeId as 年级编号,SUM(ClassHour) as 总学时数
    from Subject
    group by GradeId
    order by sum(ClassHour)

    --02.查询每个参加考试的学员平均分

    select studentno as 学生编号,AVG(studentresult) as 平均分
    from Result
    group by StudentNo

    --03.查询每门课程的平均分,并按照降序排列

    select subjectid as 学科编号,AVG(studentresult)as 平均分
    from Result
    group by SubjectId
    order by 平均分 desc  --'平均分'也可以为'AVG(studentresult)'哟!

     --04.查询每个学生参加所有考试的总分,并按照降序排列

    select studentno as 学生编号,SUM(studentresult) as 总分
    from Result
    group by StudentNo
    order by 总分 desc   --' 总分'也可以为'SUM(studentresult)'哟!

    --05.每个年级 男女生总人数(gradeid,gender,人数)

    select gradeid as 年级编号,gender as 性别,COUNT(1) as 人数
    from student
    group by GradeId,Gender
    order by GradeId,Gender

    --06.每个年级的总人数,满足总人数必须大于等于3

    select gradeid as 年级编号,COUNT(1) as 总人数
    from student
    group by GradeId
    having COUNT(1)>=3

     *****************经典练习2****************

    --01.查询每年级学时数超过50 的课程数 S1

    select gradeid as年级编号,COUNT(subjectid) as 课程数
    from Subject
    where  ClassHour>50
    group by GradeId

    --02.查询每年级学生的平均年龄:

    select gradeid as 年级编号,AVG(DATEDIFF(yy,birthday,GETDATE())) as 平均年龄
    from student
    group by gradeid

    --03.查询每个年级包含北京的学生总数 (like '%北京%')

    select gradeid as 年级编号,COUNT(1) as 总人数
    from student
    where address like '%北京%'
    group by Gradeid

     --04.查询参加考试的学生中,平均分及格的学生记录(学号,平均分),按照降序排列

    select studentno as 学生编号,AVG(StudentResult) as 平均分
    from Result
    group by StudentNo
    having AVG(StudentResult)>=60
    order by 平均分 desc  --'平均分'也可改为'AVG(StudentResult)'哟!

    --05.查询考试时间为2015-12-20课程的及格平均分 (课程编号    所有课程平均分)

    select subjectid as 学科编号,AVG(studentresult) as 平均分
    from Result
    where ExamDate>='2015-11-20' and  ExamDate<'2015-11-20'
    group by SubjectId
    having AVG(StudentResult)>=60

    --06.统计至少有一次不及格的学生学号和次数。

    select studentno as 学生编号,COUNT(1) as  次数
    from Result
    where StudentResult<60
    group by StudentNo
  • 相关阅读:
    图形化编程娱乐于教,Kittenblock arduino实例解读,红外线接收
    图形化编程娱乐于教,Kittenblock arduino实例解读,红外线发送
    图形化编程娱乐于教,Kittenblock arduino实例解读,红外线发送
    图形化编程娱乐于教,Kittenblock arduino实例解读,红外线发送
    图形化编程娱乐于教,Kittenblock arduino实例,液晶屏显示
    图形化编程娱乐于教,Kittenblock arduino实例,数码管计时器
    图形化编程娱乐于教,Kittenblock arduino实例,超声波测距
    超级简单的Android Studio jni 实现(无需命令行)
    实现ViewPager懒加载的三种方法
    MySQL安装
  • 原文地址:https://www.cnblogs.com/zhangzongle/p/4934314.html
Copyright © 2011-2022 走看看