🚀 个人主页 极客小俊
✍🏻 作者简介:程序猿、设计师、技术分享
🐋 希望大家多多支持, 我们一起学习和进步!
🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注

前言
我们在之前的学习中其实已经接触了一些SQL Server中的函数这个概念!
在SQL Server 2000中包含了许多内置函数,这些函数能够帮助我们进行数据查询、数据转换、字符串操作、日期时间的处理等等操作!
那今天我们就来讨论一下SQL Server 2000中常用的函数!
什么是函数?
如果你学过Java、PHP、Python、Javascript等开发编程语言,那么你就知道什么叫函数
这里简单给大家科普一下!
在我们编程和数据库管理中,函数是执行特定任务和计算的一段封装代码块
通俗的讲,其实你可以把函数理解为一个榔头或者工具⚒️ 可以直接拿来使用的!
函数的特性
通常情况下,函数有以下特点:
-
输入参数函数可以接受一个或多个输入参数,这些参数在函数被调用时载入! -
返回值函数执行后会返回一个结果,这个结果可以是单个值或一组值 -
封装性函数将特定的功能逻辑和计算方式封装在一个代码块中,使得代码更加模块化和可重用 -
可调用性一旦函数被定义,它就可以在程序的任何地方被调用,只要满足其参数要求就可以!
函数的分类
在我们编程和数据库系统中的函数通常两种: 内置系统函数和用户自定义函数
内置系统函数
内置系统函数简单的说就是编程语言或数据库系统预先就给我们定义好的函数,
我们作为开发者可以直接调用它们来完成常见的功能!
比如: 字符串处理、获取日期和时间、数学计算等等!!
这种函数我们称之为内置函数或者说系统函数
用户自定义函数
除了内置函数外,我们开发者还可以根据自己的需求创建自定义函数
这样的函数可以包含更加复杂的逻辑和计算,并可以接收输入参数和返回结果,
也更适合我们自己需求的场景, 对于刚刚开始学习数据库系统的朋友,其实内置函数也足够使用了, 那接下来我们就来学习一下SQL Server 2000中的内置函数吧!
聚合函数
什么叫聚合函数,所谓聚合函数我个人的看法就是聚合 聚合有聚才有合的可能!
简单的说聚合函数就是对一组值进行计算的功能函数,最后返回一个单一值的结果如!
比如
我们想知道查询列表组里有多少个记录、或者这一组列表中的数字总和是多少,平均是多少,那么类似于这种操作就是聚合
所以你可以通俗的把聚合理解为就是把多个值聚成一个值,就叫聚合!
重点注意
聚合函数通常要配合group by和having子句一起使用!
因为group by 分组进行查询的时候也叫分组聚合 ,原理为 先分组,在聚合统计!
通常情况下,是我们分出一个列表组之后,再进行聚合统计的 , 所以要分组必然会使用到聚合函数,不能光分组就毫无意义了!
并且分组的依据是很重要的, 谁分的组,就把这个字段往前显示出来!
一旦用到分组 后面如果有聚合条件必须用having来写条件语句, 不能使用where这是语法规定, 因为where关键字无法与聚合函数一起使用!
having语句是对分组的结果进行筛选, 所以不能使用where条件去筛选!
使用语法结构
SELECT 聚合函数(字段) FROM 表名称 WHERE 条件表达式 GROUP BY 字段 HAVING 聚合函数条件表达式
那么为了方便,这里我就简单给大家准备一些测试数据
如下
CREATE TABLE persons(
pid int PRIMARY KEY IDENTITY,
lastName VARCHAR(50) NOT NULL,
age int NOT NULL,
address VARCHAR(50) NOT NULL,
city VARCHAR(50) NOT NULL,
addTime DATETIME NOT NULL
);
insert into persons(lastName,age,address,city,addTime) values('亚当',35,'美国','洛杉矶','1990-10-20 00:00:00');
insert into persons(lastName,age,address,city,addTime) values('艾瑞斯',28,'英国','伦敦','1962-02-03 00:00:00');
insert into persons(lastName,age,address,city,addTime) values('张文华',59,'中国','上海','1956-08-06 00:00:00');
insert into persons(lastName,age,address,city,addTime) values('克夫',62,'法国','巴黎','1956-02-06 00:00:00');
insert into persons(lastName,age,address,city,addTime) values('王棚',28,'中国','北京','1985-10-20 00:00:00');
insert into persons(lastName,age,address,city,addTime) values('罗珊珊',66,'中国','上饶','1986-02-03 00:00:00');
insert into persons(lastName,age,address,city,addTime) values('张卫华',30,'德国','柏林','1956-01-20 00:00:00');
insert into persons(lastName,age,address,city,addTime) values('杰克',32,'英国','伦敦','1976-05-06 00:00:00');
如图


准备好数据之后,接下来我就介绍一些我自己平常开发中比较常用的聚合函数
AVG 计算平均值函数
定义
AVG 函数的功能就是可以返回某个数值列的平均值, 注意NULL 值不会包括在计算中
举个栗子
比如说: 计算所有人的平均年龄是多少!
select avg(age) as '所有人的平均年龄' from persons;
如图

但是我前面说过了,如果光是这样使用聚合函数提现不出它的真实意义!
通常情况下我们都要根据group by分组之后,在进行聚合统计
比如: 我们现在要统计每个国家的人的平均年龄!
那么这个时候,我们就需要对国家分组,然后再聚合统计了!
sql如下
select address as '国家',avg(age) as '当前国家的平均年龄' from persons group by address
如图

MAX() 计算某列的最大值函数
定义
MAX 函数可以返回一列中的最大值。注意如果列中有NULL 值不会包括在计算中!
举个栗子
比如我们现在要查询年龄最大的是谁?
如下
SELECT * FROM Persons where age = (SELECT MAX(age) FROM Persons);
如图

MIN() 计算某列的最小值函数
定义
MIN函数可以返回一列中的最小值, 注意如果列中有NULL 值不会包括在计算中!
举个栗子
比如我们现在要查询年龄最小的是谁?
如下
SELECT * FROM Persons where age = (SELECT MIN(age) FROM Persons);
如图

SUM() 计算某列的总和函数
定义
SUM 函数可以返回数值列的总数或者说总和
举个栗子
比如: 我们现在要查询中国员工的工资总和!
如下
SELECT SUM(salary) as '中国员工薪资总和' FROM Persons where address = '中国';
如图

那么现在如果我们要查询中国和美国的员工分别工资总和是多少!
如下
SELECT address,SUM(salary) as '总和' FROM Persons where address = '中国' or address = '美国' group by address;
如图

COUNT() 计算行数或列中不同值的数量
定义
COUNT() 函数主要可以返回匹配指定条件的行数!
举个栗子
比如: 我们现在要查询每一个国家都有多少个人?
SELECT address as '国家名称',count(lastName) as '该国家有几个人' FROM Persons group by address;
如图

那么我们现在来查看有多少个国家
如下
SELECT count(address) FROM Persons;
如果是这样查询显然不正确啊~
如图

这里其实我们可以在count()函数中使用distinct关键字先去除重复,然后统计~
如下
SELECT count(distinct address) as '国家数目' FROM Persons;
如图

小结
以上就是聚合函数的一些使用场景,我们平常要在实际项目中多去熟练的使用它们,自然就可以熟能生巧了!


"👍点赞" "✍️评论" "收藏❤️"欢迎一起交流学习❤️❤️💛💛💚💚

好玩 好用 好看的干货教程可以点击下方关注❤️微信公众号❤️
说不定有意料之外的收获哦..🤗嘿嘿嘿、嘻嘻嘻🤗!
🌽🍓🍎🍍🍉🍇


1011

被折叠的 条评论
为什么被折叠?



