数据库建表脚本和使用的数据请参考:http://www.cnblogs.com/zhtzyh2012/p/5235826.html

  sql50题练习参看:http://blog.sina.com.cn/s/blog_6d1d0bf80100zm8l.html

  -- 创建教学系统的数据库,表,以及数据
  -- student(sno,sname,sage,ssex) 学生表
  -- course(cno,cname,tno) 课程表
  -- sc(sno,cno,score) 成绩表
  -- teacher(tno,tname) 教师表

  1、查询“001”课程比“002”课程成绩高的所有学生的学号;
    step1:查询所有学生的学号和成绩关联的表是sc表
    step2:查询课程1和课程2的成绩
    select score, sno from sc where sc.cno = 1;   -- alias a
    select score, sno from sc where sc.cno = 2;   -- alias b
    step3:查询同一人的课程1和2的分数进行比较
    a.score > b.score and a.sno = b.sno
  select a.sno from (select score, sno from sc where sc.cno = 1) a,
                  (select score, sno from sc where sc.cno = 2) b
              where a.score > b.score and a.sno = b.sno;
  此题知识点,嵌套查询和给查出来的表起别名

  2.查询平均成绩大于60分的同学的学号和平均成绩;

  step1:查询所涉及的表是sc
    step2:平均成绩 avg()方法,根据学号进行分组,聚合函数算取平均分

  select sno, avg(score) from sc group by sno having avg(score) > 60;

  此题知识点,GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。group by后面不能接where,having代替了where

  3.查询所有同学的学号、姓名、选课数、总成绩;

  step1:学号和姓名来自学生表,选课数和总成绩来自成绩表

  step2:select sno, sname from student;    -- 获取学号和姓名
  step3:select sno, count(*), sum(score) from sc group by sno;  -- 获取总成绩和选课数
  select s.sno, s.sname, count(sc.cno), sum(sc.score) from student s left join sc on s.sno = sc.sno group by s.sno, s.sname;

  此题主要考察左关联查询和分组使用

  

  

  

  

  

  

  

2016030208 - sql50题练习题的更多相关文章

  1. 2016030207 - sql50题练习(脚本)

    我的mysql版本是5.下面是要进行sql练习题使用的脚本.脚本是我整理出来的,在我本地直接复制执行就可以使用! 参考网址是:http://blog.csdn.net/zhangyulin54321/ ...

  2. MySQL 40题练习题和答案

    2.查询"生物"课程比"物理"课程成绩高的所有学生的学号: 思路:    获取所有有生物课程的人(学号,成绩) - 临时表    获取所有有物理课程的人(学号, ...

  3. 谈一谈Java8的函数式编程 (三) --几道关于流的练习题

    为什么要有练习题?    所谓学而不思则罔,思而不学则殆,在系列第一篇就表明我认为写博客,既是分享,也是自己的巩固,我深信"纸上得来终觉浅,绝知此事要躬行"的道理,因此之后的几篇博 ...

  4. Java8函数之旅 (三) --几道关于流的练习题

    为什么要有练习题?    所谓学而不思则罔,思而不学则殆,在系列第一篇就表明我认为写博客,既是分享,也是自己的巩固,我深信"纸上得来终觉浅,绝知此事要躬行"的道理,因此之后的几篇博 ...

  5. SQL查询--关于查询的练习题

    下面的练习题出自LeetCode:https://leetcode-cn.com/problemset/database/,有兴趣的可以去上面刷刷题 练习题1:超过经理收入的员工  分析: 使用sql ...

  6. 白板编程浅谈——Why, What, How

    作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://lucida.me/blog/whiteboard-coding-demystified/ 这篇文章节选 ...

  7. 白板编程浅谈——Why, What, How(转)

    原文链接:http://lucida.me/blog/whiteboard-coding-demystified/ 这篇文章节选自我正在撰写的一本关于应届生面试求职的书籍,欢迎在评论或微博(@peng ...

  8. python网页爬虫小项目开发

    这是我最近接的一个小项目,花了是整整四天多时间. 任务是将http://www.examcoo.com/index/detail/mid/7网站下所有的试卷里的试题全部提取出来,首先按照题型进行分类, ...

  9. NOIP2007 奖学金 结构体排序

    是结构体排序的练习题,可供选手们巩固结构体排序的一些相关内容. 关于结构体排序 1.结构体定义 struct student { int num,a,b,c,sum; }p[]; 2.结构体初始化 ; ...

随机推荐

  1. Android 系统状态栏一体化

    Android4.4新特性,系统状态栏一体化. 实现的步骤主要有以下几点: 1.android4.4 以上版本 2.设置app全屏: 方法:在AndroidManifest.xml中设置android ...

  2. RHCA442学习笔记-Unit11内存缓存

      Unit 11 Memory Caches 内存缓存           学习目标:                 A. 使用内存来改善运行慢的子系统的服务时间.   11.1 Strategi ...

  3. linux 打补丁 2原理

    1.创建目录 demo cd demo 有bug文件a.txt: 当前目录为demo mkdir -p old/a/p vi old/a/p/foo.txt old_line_1 old_line_2 ...

  4. 使用OKHttp模拟登陆知乎,兼谈OKHttp中Cookie的使用!

    本文主要是想和大家探讨技术,让大家学会Cookie的使用,切勿做违法之事! 很多Android初学者在刚开始学习的时候,或多或少都想自己搞个应用出来,把自己学的十八般武艺全都用在这个APP上,其实这个 ...

  5. axis2调用webservice

    public static long TIMEOUTINMILLISECONDS=100000; /** * 调用webservice * @param url webserviceURL * @pa ...

  6. javascript进击(六)Jquery

    引用 jQuery 如需测试 JavaScript 库,您需要在网页中引用它. 为了引用某个库,请使用 <script> 标签,其 src 属性设置为库的 URL: <!DOCTYP ...

  7. c语言,strcat(),字符串拼接

    #include<stdio.h> #include<string.h> int main() {  char destination[25];  char  *zhang=& ...

  8. Learning Django Resources

    Learning Django Django makes it easier to build better Web apps more quickly and with less code. Web ...

  9. 推荐几个对Asp.Net开发者比较实用的工具

    推荐几个对Asp.Net开发者比较实用的工具.大家有相关工具也可以在评论区留言,一起努力学习. 工具 1.Visual stdio Productivity Power tool:visual std ...

  10. Yii::app()方法详解

    Yii::app()方法详解 1.Yii::app()返回的是一个当前框架应用程序的对象 2.Yii::app()是framework/web/CWebApplication.php类实例化的对象,所 ...