数据库系统原理:聚集函数

yumo6664个月前 (04-05)技术文章34

SQL命令包括数据定义、查询、操纵和控制四大类,其中数据查询是数据库的核心操作。


学习在SQL数据查询中使用聚集函数的方法。

一、五种聚集函数介绍

聚集函数(集合函数)→垂直方向(一个值):主要用法是在垂直方向上把多个值变为一个值。

(1)count(计数函数)

count([distinct]<列名>):统计一列中值的个数,不计算空值;

count([distinct]*):计算元组的个数(行数),不管列值是否为空。

distinct:可选项,表示不计重复元组。

(2)sum(求和函数)

sum([distinct]<列名>):计算一列的总和(要求此列必须是数值型)。

(3)avg(平均值)

avg([distinct]<列名>):计算一列的平均值(要求此列必须是数值型)。

(4)max(最大值)

max([distinct]<列名>):求一列值中的最大值。

(5)min(最小值)

min([distinct]<列名>):求一列值中的最小值。

除count(*)外,其他的函数计算涉及到列中的空值都要先去掉再计算。

二、聚集函数的举例

例图

例1:求c2课程的平均成绩。

Select avg(grade)

From SC

Where cno = 'c2';

此查询的结果为:(80+70+90)/3=80

每个学生的课程成绩是记录在SC表的中的,所以要从SC表中获取成绩数据;要选择的是课程c2的成绩,所以选择条件是“课程号是c”;选择之后有四行数据,要计算的是选择c2这门课的平均成绩,所以在选择的时候“SELECT”了avg(grade),而表示直接选择成绩。

使用了聚集函数,它把多个值计算为一个值。由于是使用avg函数,所以计算的时候是去掉了空值才计算的。

例2:求男同学的总人数和平均年龄。

Select count(*), avg( age)

From S

Where sex='男'

从S表中、条件是“性别是男生”,计算总的人数使用count(*)来表示;使用avg( age)来计算总的男生的平均年龄。

例3:统计选修了课程的学生人数。

Select count(sno) // count(distinct sno)

From SC ;

学生选课信息是记录在SC表中的,那么统计学号的个数就计多少个学生选课。

如果出现一个学生选多门课、只能计算一次的情况,需要使用distinct去除重复的学号信息

例4:求选修课程c2的学生的最高分和最低分。

Select max(grade)as最高分,min(grade)

From SC

Where cno= 'c2';

选修课程是在SC表中,条件是“课程号是c2”,需要它们的选课成绩,计算它们的最高分、最低分。

从SC表中查询选择课程c2的学生的最高分和最低分,从下图的数据中可以看出课程c2最高分是78、最低分是50;当结果输出的时候,如果不起名字的话,它是以“无列名”来表示的,这样的话结果无法明确的表示“78”和“50”的含义是什么。

所以,通常在有计算的列输出的时候会给它起名字来标识这一列的值的含义。所以,在使用聚集函数的时候最好使用别名来改变列标题。

三、总结

在查询中使用聚集函数可以增强查询的检索功能,方便用户操作。需要注意的是在涉及列的聚集函数都跳过空值而只处理非空值即去掉空值以后再计算。

需要注意,在where子句中不能使用聚集函数作为条件表达式,例如查找平均分大于80的学生学号,不能使用:

"Select sno From SC Where avg(grade)>80"。会出现出错提示。

此外,聚集函数也不能嵌套使用。

相关文章

面试官:说一下数据库事务的实现原理

#数据库事务的实现原理是什么样的?#什么是数据库事务?数据库事务的四大特性?数据库事务隔离级别?数据库事务的实现原理?一、什么是数据库事务?数据库事务是指作为一个不可分割的操作单元执行的一系列数据库操...

数据库系统原理:外键约束

关系数据库中最重要的约束是实体完整性和参照完整性。在SQL中,参照完整性称为外键约束。学习SQL中参照完整性的实现方法。一、参照完整性定义外键约束指参照完整性检查。根据参照完整性规则,依赖关系中外键或...

关系型数据库原理-1 ---关系代数笛卡尔积

1、关系数据库的基本概念(1)属性和域 在现实世界中,要描述一个事物常常取若干特征来表示,这些特征成为属性。例如,用学号、姓名、性别、年龄和籍贯等属性来描述学生。每个属性取值范围对应一个值的集合,成为...

数据库系统原理:模式的定义与删除

SQL命令包括数据定义、查询、操纵和控制四大类,其中SQL的数据定义用于创建数据库中的各种数据对象。SQL的数据定义包括对SQL数据库、模式、基本表、视图和索引的创建和撤销操作。学习用SOL语言定义数...