当前位置: 首页 > java >正文

数据库-day06

一、实验名称和性质

分类查询

验证  综合 设计

二、实验目的

1.掌握数据查询的Group by ;

2. 掌握聚集函数的使用方法。

三、实验的软硬件环境要求

硬件环境要求:

       PC机(单机)

使用的软件名称、版本号以及模块:

       Windows 10下的SQL Server 2019

四、知识准备

前期要求掌握的知识:

数据检索的语句格式:

SELECT [ALL|DISTINCT] <目标列表达式列表>                                                  

FROM <表名或视图名列表> 

[ WHERE <条件表达式> ]

[ GROUP BY <列名1>,… [WITH ROLLUP | CUBE]  [CUBE(…)| ROLLUP(…)]

[GROUPING SETS (…)]

[ HAVING <条件表达式> ] ]

[ ORDER BY <列名2> [ ASC|DESC ] ]

 其中,SELECT后的目标列表达式可以是列名、表达式或函数。

GROUP BY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用集函数。

HAVING短语:筛选出只有满足指定条件的组

ORDER BY子句:对查询结果表按指定列值的升序或降序排序

注意:T-SQL语句中关键字不区分大小写

五、实验内容(以实验5的数据为基础)

1.对数据表进行分类汇总;

2.在检索中使用聚集函数;

六、验证性实验

  1. 使用聚集函数

(1)查询选课表中最高分、平均分、最低分

SELECT MAX(DEGREE), AVG(DEGREE),MIN(DEGREE)

FROM SCORE023

(2)查询“3-105”课程的最高分、平均分和最小成绩。

SELECT MAX(DEGREE), AVG(DEGREE),MIN(DEGREE)

FROM  SCORE023

WHERE  CNO=‘3-105’

  1. 进行分组统计:

(1)查询各学生的选课数

SELECT  SNO,COUNT(*)

FROM  SCORE023

GROUP  BY  SNO

(2)使用HAVING 字句:“选课表”中查询选修了3 门以上课程的学生学号。

SELECT  SNO ,COUNT(*)FROM SCORE023

GROUP  BY  SNO

HAVING  COUNT(*)>=3

    

(3)“选课表”中按学号分组汇总学生的平均分,并按平均分的降序排列。

SELECT  SNO  学号, AVG(DEGREE)  平均分  FROM  SCORE023

GROUP  BY  SNO

ORDER  BY  平均分  DESC    -- -- ORDER  BY AVG(DEGREE)  DESC

        

“选课表”中查询平均成绩80以上课程的学生学号和平均成绩。

SELECT  SNO ,avg(degree) 平均 FROM SCORE023

GROUP  BY  SNO

HAVING  avg(degree)>=80

“选课表”中95031班中平均成绩80以上课程的学生学号,姓名,平均成绩。

SELECT  S.SNO ,SNAME,avg(degree) 平均 FROM SCORE023  SC

JOIN STUDENTXXX  S ON S.SNO=SC.SNO  WHERE CLASS=’95031’

GROUP  BY  S.SNO,SNAME

HAVING  avg(degree)>=80

(4)分析下面SELECT语句执行结果

SELECT  SNO, CNO ,AVG(DEGREE)  FROM  SCORE023

GROUP  BY  SNO                        --???

SELECT  SNO,CNO,AVG(DEGREE)  FROM  SCORE023

GROUP  BY  SNO,CNO WITH ROLLUP

SELECT  SNO,CNO,AVG(DEGREE)  FROM  SCORE023

GROUP  BY ROLLUP(SNO,CNO) 

SELECT  SNO, CNO,AVG(DEGREE) FROM  SCORE023

GROUP  BY  SNO,CNO WITH CUBE

SELECT  SNO,CNO,AVG(DEGREE) FROM  SCORE023

GROUP  BY CUBE(SNO,CNO)

SELECT  SNO,CNO,AVG(DEGREE)  FROM SCORE023

GROUP BY GROUPING SETS (SNO,CNO)

SELECT  SNO,CNO,AVG(DEGREE)  FROM SCORE023

GROUP BY GROUPING SETS (ROLLUP(SNO,CNO))

SELECT  SNO,CNO,AVG(DEGREE)  FROM SCORE023

GROUP BY GROUPING SETS (ROLLUP(SNO,CNO),CUBE(SNO,CNO))

七、设计性实验

1.实验要求

(1)查询每门课程的平均分,包括课程号和平均分。

(2)查询每门课程的平均分,包括课程号、课程名和平均分。

(3)查询男的平均分,包括学号和平均分。

(4)查询女的平均分,包括学号,姓名和平均分。

(5)查询每门课程的最高、最低分,包括课程号和最高、最低分。

(6)查询每位学生的最高、最低分、平均分,包括学号,姓名和最高、最低分、平均分。

(7)查询所有成绩都及格的学号,姓名

(8)查询每位老师所授课程的最高、最低分,包括教师号,姓名,课程名和最高、最低分。

(9)查询学生信息,包括学号,课程号,成绩以及学生的平均分。(一个语句)

 

(10)查询学生信息,包括姓名,课程名,成绩以及每位学生的平均分和每门课程的平均分。(一个语句)

(11)查询学生信息,包括学号,姓名,课程号,课程名,成绩以及每位学生的平均分和每门课程的平均分。(一个语句)

 (12)查询学生信息,包括学号,姓名,课程号,课程名以及每位学生的平均分和每门课程的平均分。(一个语句)

http://www.xdnf.cn/news/39.html

相关文章:

  • Qt 核心库总结
  • CSS核心笔记001
  • 案例驱动的 IT 团队管理:创新与突破之路:第五章 创新管理:从机制设计到文化养成-5.2 技术决策民主化-5.2.2技术选型的量化评估矩阵
  • 纳什均衡(Nash Equilibrium) 的详细解析,涵盖定义、关键特性、经典案例及应用价值
  • 逻辑过期怎么设计
  • osu ai 论文笔记 DQN
  • Redis--事务
  • 从彩色打印单行标准九九表学习〖代码情书〗的书写范式(Python/DeepSeek)
  • 总结【过往部分项目经历一(计算机图形学方向)】
  • 一路磕磕绊绊解决flutter doctor 报错CocoaPods not installed
  • 鸿蒙API15 “一多开发”适配:解锁黄金三角法则,开启高效开发新旅程
  • Gateway
  • 【HDFS入门】HDFS高可用性与容错机制深度解析
  • XC7K410T‑2FFG900I 赛灵思XilinxFPGA Kintex‑7
  • 5.VTK 相机
  • 智能体开发范式革命:Cangjie Magic的颠覆性创新与行业重塑
  • 电控---printf重定向输出
  • BFC详解
  • 4.16 AT好题选做
  • 2026《数据结构》考研复习笔记二(C++面向对象)
  • QML 信号与槽
  • 微信小程序文字混合、填充动画有效果图
  • 全自动驾驶(FSD,Full Self-Driving)自动驾驶热点技术的成熟之处就是能判断道路修复修路,能自动利用类似“人眼”的摄像头进行驾驶!值得学习!
  • SpringBoot项目动态加载jar 实战级别
  • 探索鸡养殖虚拟仿真实验:科技赋能养殖新体验
  • 新型多机器人协作运输系统,轻松应对复杂路面
  • 黑马商城项目(三)微服务
  • IDEA 中 Scala 项目远程连接虚拟机 Spark 环境
  • ubuntu 向右拖动窗口后消失了、找不到了
  • Nodemon vs. PM2:开发与生产环境的 Node.js 部署最佳实践