复杂的单表查询

实验目的:

1、在查询语句中用Group by子句进行分组;用Having子句对分组进行筛选。

2、使用MAX(),MIN(),COUNT(),SUM(),AVG()等函数在查询结果集中生成汇总值。实验内容:

利用数据库还原技术,恢复上次课的数据库表结构和数据。

1、使用集函数

2、对查询结果分组

实验内容及要求:

1、查询学生总人数

select count(*) number
from Student;
go

2、查询选修了课程的学生人数

select count(distinct sno) number
from SC;
go

3、计算1号课程的学生平均成绩

select avg(grade) avggrade
from SC
where cno='1';
go

4、查询选修1号课程的学生最高分数

select max(grade) maxgrade
from SC
where cno='1';
go

5、求各个课程号及相应的选课人数

select cno,count(sno) number
from SC
group by cno;
go

6、查询选修了3门以上课程的学生学号(提示用Having字句)

select sno
from SC
group by sno
having count(*)>3;
go

7、查询有3门以上课程是90分以上的学生的学号及(90分以上的)课程数。

select sno,count(*) number
from (select snofrom SCwhere grade>90)A
group by sno
having count(*)>3;
go

8、求同时学了‘c01’,'c02','c03'这三门课程的学生学号

select sno
from (select snofrom SCwhere cno='1' or cno='2' or cno='3')A
group by sno
having count(*)=3;
go

9、求每门课程平均分之下的选课记录

select sno,cno,grade
from SC x
where grade<(select avg(grade)from SC ywhere y.sno=x.sno)
go

10、求选课人数大于3人的课程号,课程名,平均分

select Course.cno,cname,score
from Course,(select cno,avg(grade) scorefrom SCgroup by cnohaving count(*)>3)A
where Course.cno=A.cno;
go

思考与练习

1、Where与Having语句有何差别?

1.where不能放在group by后面
2.having是跟group by连在一起用的,放在group by 后面,此时的作用相当于where
3.where后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING可以。

2、Count(*)与Count(字段名)有何差别?

Count(*)作用是统计元组个数,count([distinct|all]<列名>)作用是统计一列中值的个数
当聚集函数遇到空值时,除count(*)外,都跳过空值而只处理非空值。

附:

实验所需学生数据库:

Student表

Course表

SC表

数据库系统概论(第五版)实验报告五相关推荐

  1. c语言程序设计第五版实验报告九,C语言程序设计实验报告-实验九.doc

    C语言程序设计实验报告-实验九.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3 ...

  2. 《数据库系统原理及应用教程》(苗雪兰等,第五版) 实验五:数据库的组合查询和统计查询实验

    阅读前注意: 1. 本实验报告配套<数据库系统原理及应用教程>(苗雪兰等,第五版) 实验五:数据库的组合查询和统计查询实验(书上10.4节以及第六章部分内容),书本中采用Microsoft ...

  3. java程序设计输入输出实验_20145320《Java程序设计》第五次实验报告

    20145320<Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18: ...

  4. 计算机组成原理实验load,计算机组成原理实验报告五

    计算机组成原理实验报告五 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 4.9 积分 广东工业大学广东工业大学实验报告 计算机学院 计算机科学与技术 ...

  5. c语言实验报告5数组,c语言实验报告五一维数组.doc

    c语言实验报告五一维数组 <C程序设计>课程实验报告 学院: 班级: 姓名: 学号: 实验设备:计算机1台2011年3月1日 实验项目名称一维数组 掌握一维数组的定义.初始化,以及一维数组 ...

  6. C语言第五章实验原理,C语言第五章实验报告.docx

    C语言第五章实验报告 C语言第五章实验报告?班级:14金工3班??????????学号???????????姓名:周俐俐一.实验目的?1.?熟悉C语言编程环境.2.?进一步熟悉用C语言调试C语言源程序 ...

  7. 《数据库系统概论》课程之实验三:数据控制(安全性部分)

    注:查看全文请关注作者,或点击前往:<数据库系统概论>课程之实验三:数据控制(安全性部分) <数据库系统概论>课程之实验三:数据控制(安全性部分) 实验目的 (1)熟悉通过SQ ...

  8. 数据库系统概论(第5版)学习笔记 第0章——走进数据库系统

    数据库系统概论(第5版)笔记 第0章--走进数据库系统 走进数据库系统 数据库系统概论(第5版)笔记 第0章--走进数据库系统 0.为什么要学它? 1.数据库系统的发展经历了三代演变 2.造就了四位图 ...

  9. 数据结构c语言版实验报告2,数据结构(C语言版) 实验报告 (2)

    <数据结构(C语言版) 实验报告 (2)>由会员分享,可在线阅读,更多相关<数据结构(C语言版) 实验报告 (2)(15页珍藏版)>请在人人文库网上搜索. 1.数据结构(C语言 ...

  10. 《数据库系统原理》教学上机实验报告

    <数据库系统原理>教学上机实验报告 实验题目: 实验一 创建数据库与表 实验目的和要求: 了解 mysql 数据库的存储引擎分类; 了解表的结构特点; 了解 mysql 的基本数据类型; ...

最新文章

  1. 用每个月的下载量超过300亿次的NPM,窃取密码是一种什什么样的体验!
  2. 中小SAP项目中的人员编制
  3. 杭电1262--寻找素数对(打表)
  4. oracle数据库中函数和存储过程中的区别
  5. 计算机应用常用的30个函数,Excel中常用函数的使用
  6. slf4j + log4j原理实现及源码分析
  7. 这是一篇测试博文的文章
  8. SharePoint2007文档的点击率统计
  9. java项目运维手册
  10. 思科路由器如何导出配置文件_如何备份cisco路由器配置文件
  11. 引用限定符 reference qualifiers
  12. 【张朝阳的物理课笔记】9. 瑞丽金斯公式的推导(下),普朗克修正,黑体辐射公式
  13. android hid 触摸屏驱动,针对USB接口触摸屏HID免驱触摸屏配置方法
  14. steam卡价越来越高,steam搬砖项目还能玩么?
  15. 为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?
  16. 非线性方程模型及求解实例
  17. android短信接收器的实现,可以实现自动填写短信验证码功能
  18. python简易电话簿系统_Python实现电话簿工具(代码分享)
  19. 【python第五章——函数】
  20. swift 加速传感器

热门文章

  1. 美通社日历 | 会展及重要事件信息、企业财报发布,节假日备忘(5月3日—5月9日)
  2. Linux如何链接不是以lib开头名字的库
  3. (十三)敢问路在何方
  4. Java 开发公司使用到的工具
  5. python抛硬币正反面的概率_抛硬币连续N次正面后再次正面的概率是多少呢?有疑虑的话咱用Python模拟一下吧...
  6. springboot 定时任务
  7. AngularJS 0005:作用域
  8. VC绘图/游戏简易教程
  9. 按键精灵官方教程分享
  10. oppo申请鸿蒙系统,OPPO公关:拒绝华为鸿蒙系统!理由却是这样的