数据库(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)排列,默认值为升序。对于空值,排序时显示的次序由具体系统实现来决定。例如按升序排,含空值的元组最后显示;按降序排,空值的元组则最先显示。

目录
相关文章
|
2天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
|
3天前
|
存储 SQL 缓存
构建高效的矢量数据库查询:查询语言与优化策略
【4月更文挑战第30天】本文探讨了构建高效矢量数据库查询的关键点,包括设计简洁、表达性强的查询语言,支持空间操作、函数及索引。查询优化策略涉及查询重写、索引优化、并行处理和缓存机制,以提升查询效率和准确性。这些方法对处理高维空间数据的应用至关重要,随着技术进步,矢量数据库查询系统将在更多领域得到应用。
|
3天前
|
SQL 缓存 监控
如何在数据库查询中使用参数化查询?
【4月更文挑战第30天】如何在数据库查询中使用参数化查询?
12 1
|
3天前
|
存储 SQL 关系型数据库
mysql查询数据库表大小怎么操作
mysql查询数据库表大小怎么操作
|
4天前
|
缓存 关系型数据库 MySQL
研优化数据库查询性能
研优化数据库查询性能
15 0
|
4天前
|
安全 数据管理 数据库
数据管理DMS产品使用合集之要将某个DMS实例中的特定数据库授权给某个用户进行查询,操作步骤是怎样的
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
4天前
|
关系型数据库 数据库 开发者
关系型数据库查询避免SELECT *
有时候你可能会遇到需要选择表中的所有列的情况,但这应该是例外而不是常态。在大多数情况下,你应该尽量避免使用 `SELECT *`。
9 1
|
5天前
|
SQL 分布式计算 关系型数据库
云原生数据仓库产品使用合集之可以把ADB MySQL湖仓版数据库做成页面查询的数据库吗
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
5天前
|
存储 关系型数据库 MySQL
【MySQL探索之旅】数据库设计以及聚合查询
【MySQL探索之旅】数据库设计以及聚合查询
|
5天前
|
缓存 监控 关系型数据库
关系型数据库优化查询语句
记住每个数据库和查询都是独特的,所以最好的优化策略通常是通过测试和分析来确定的。在进行任何大的更改之前,始终备份你的数据并在测试环境中验证更改的效果。
14 5