数据库(2)--加深对统计查询的理解,熟练使用聚合函数

简介: 数据库(2)--加深对统计查询的理解,熟练使用聚合函数

一、内容要求


利用sql建立学生信息数据库,并定义以下基本表:

学生(学号,年龄,性别,系号)

课程(课号,课名,学分,学时)

选课(学号,课号,成绩)


根据上面基本表的信息完成下列查询:

(1)查询选修了数据库原理的学生的人数和平均成绩。

(2)查询选修3门课 以上的学生姓名。

(3)列出人数超过1000人的系名。

(4)查询所有课程都及格的学生姓名。


二、代码

(1)查询选修了数据库原理的学生的人数和平均成绩

select count(*)
from xe
where cnum='03';
select AVG(grade)
from xe
where cnum='03'


(2)查询选修3门课 以上的学生姓名。

select sno
from xe 
group by sno
having count(*)>3


(3)列出人数超过1000人的系名

1. select sdept
2. from stu
3. group by sdept
4. having count(*)>1000


(4)查询所有课程都及格的学生姓名

1. select distinct sname
2. from xe
3. where grade>60


三、结果分析

(1)查询选修了数据库原理的学生的人数和平均成绩


fb91bc803615ba0d03bbadd51f894a87.png

481ee46eb764fcddaf701bc1d8ea1be4.png

(2)查询选修3门课 以上的学生姓名


7e87bc068c8585e267cfc4f00fde8983.png


(3)列出人数超过1000人的系名

4029739b9209638ccf520c4bb0ca2b82.png

(4)查询所有课程都及格的学生姓名


f0368f5284dc505b0c36067c1cd69b63.png

SELECT语句的含义是:根据WHERE子句的条件表达式从FROM子句指定的基本表、视图或派生表中找出满足条件的元组,再按SELECT子句中的目标列表达式选出元组中的属性值形成结果表。


同时为了进一步方便用户,增强检索功能,SQL提供了许多聚集函数,主要有:


COUNT(*) 统计元组个数

COUNT( [DISTINCT|ALL] <列名>) 统计- -列中值的个数

SUM( [DISTINCT|ALL] <列名>) 计算一列值的总和 (此列必须是数值型)

AVG( [DISTINCT|ALL] <列名>) 计算一列值的平均值 (此列必须是数值型)

MAX( [DISTINCT|ALL] <列名>) 求一列值中的最大值

MIN( [DISTINCT|ALL] <列名>) 求列值中的最小值


四、小结


       在使用聚集函数时,如果指定DISTINCT 短语,则表示在计算时要取消指定列中的重复值。如果不指定STINCT短语或指定ALL短语(ALL为默认值),则表示不取消重复值。


       用户可以用ORDER BY子句对查询结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,默认值为升序。对于空值,排序时显示的次序由具体系统实现来决定。例如按升序排,含空值的元组最后显示;按降序排,空值的元组则最先显示。

相关文章
|
4月前
|
人工智能 安全 机器人
无代码革命:10分钟打造企业专属数据库查询AI机器人
随着数字化转型加速,企业对高效智能交互解决方案的需求日益增长。阿里云AppFlow推出的AI助手产品,借助创新网页集成技术,助力企业打造专业数据库查询助手。本文详细介绍通过三步流程将AI助手转化为数据库交互工具的核心优势与操作指南,包括全场景适配、智能渲染引擎及零代码配置等三大技术突破。同时提供Web集成与企业微信集成方案,帮助企业实现便捷部署与安全管理,提升内外部用户体验。
482 12
无代码革命:10分钟打造企业专属数据库查询AI机器人
|
6月前
|
Cloud Native 关系型数据库 分布式数据库
|
6月前
|
并行计算 关系型数据库 MySQL
如何用 esProc 将数据库表转储提速查询
当数据库查询因数据量大或繁忙变慢时,可借助 esProc 将数据导出为文件进行计算,大幅提升性能。以 MySQL 的 3000 万行订单数据为例,两个典型查询分别耗时 17.69s 和 63.22s。使用 esProc 转储为二进制行存文件 (btx) 或列存文件 (ctx),结合游标过滤与并行计算,性能显著提升。例如,ctx 并行计算将原查询时间缩短至 0.566s,TopN 运算提速达 30 倍。esProc 的简洁语法和高效文件格式,特别适合历史数据的复杂分析场景。
|
7月前
|
SQL 关系型数据库 MySQL
如何优化SQL查询以提高数据库性能?
这篇文章以生动的比喻介绍了优化SQL查询的重要性及方法。它首先将未优化的SQL查询比作在自助餐厅贪多嚼不烂的行为,强调了只获取必要数据的必要性。接着,文章详细讲解了四种优化策略:**精简选择**(避免使用`SELECT *`)、**专业筛选**(利用`WHERE`缩小范围)、**高效联接**(索引和限制数据量)以及**使用索引**(加速搜索)。此外,还探讨了如何避免N+1查询问题、使用分页限制结果、理解执行计划以及定期维护数据库健康。通过这些技巧,可以显著提升数据库性能,让查询更高效流畅。
|
7月前
|
数据库
【YashanDB知识库】数据库用户所拥有的权限查询
【YashanDB知识库】数据库用户所拥有的权限查询
|
7月前
|
存储 运维 监控
百万指标,秒级查询,零宕机——时序数据库 TDengine 在 AIOps 中的硬核实战
本篇文章详细讲述了七云团队在运维平台中如何利用 TDengine 解决海量时序数据存储与查询的实际业务需求。内容涵盖了从数据库选型、方案落地到业务挑战及解决办法的完整过程,特别是分享了升级 TDengine 3.x 时的实战经验,给到有需要的小伙伴参考阅读。
233 1
|
1月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
72 3
|
1月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
24天前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。

热门文章

最新文章

下一篇
oss教程