【MySQL】——用一文解决@基础函数group by
目录
前言
📒1.聚合函数
🌾1.1统计数据数量——count( )
🍄1.2统计数据总和——sum( )
🍀1.3计算平均值——avg( )
☘️1.4找出最大值——max( )
💐1.5找出最小值——min( )
📗2.日期函数
📅2.1获得年月日——current_date函数
🕗2.2获得时分秒——current_time函数
🔖2.3获得时间戳——current_timestamp函数
2.4加上时间——date_add函数
🔎2.5减去时间——date_sub函数
📉2.6计算相差天数——dateidff函数
📙3.字符串函数
✏️3.1连接字符串——concat( )
🖊3.2转换成大写——ucase( )
🖋3.3转换成小写——lacse( )
✒️3.4获取字符串长度——length( )
📁3.5替换字符串——replace( )
📘4.数学函数
📏4.1求绝对值——abs函数
📏4.2向上取整——ceiling函数
📏4.3向下取整——floor函数
📏4.4保留n位小数——format函数
📏4.5获取随机数——rand函数
📕5.group by
总结
前言
🔎你现在认清函数的重要性了吗?
它是某一功能的实现,亦是代码的集合
有了我们自己写的函数,我们不用重复写一些代码
有了内置函数,我们可以轻松搞定一些复杂的问题
一句话:🔥编程不能没有函数,就像西方不能没有耶路撒冷🔥
本章节重点——MySQL的函数&&如何分组
📒1.聚合函数
🌾1.1统计数据数量——count( )
想要得到目前一共多少个数据,我们可以使用count函数来完成!
语法:
count([disinct] expr);
示例:
现在有一张EMP员工表
我需要统计一共有多少个员工
密密麻麻的,我不想自己一个一个数,使用count()搞定
🍄1.2统计数据总和——sum( )
当需要计算一下数据总和的时候,就可以使用sum()一键完成!
语法:
sum([distinct] expr);
示例:
查看部门号为10的员工的工资总和
🍀1.3计算平均值——avg( )
一旦数据多了起来,求取平均值就很麻烦了
不仅需要统计数量,还有算出数据总和
真要算,很无力,好在我们可以使用avg()一键获取!
语法:
avg([distinct] expr);
示例:
计算部门号为10的部门平均薪水
☘️1.4找出最大值——max( )
我们有时候,就喜欢争一个最高、最强、最大
要想一眼看出来谁最大,我们可以使用max()一键完成
语法:
max([distinct] expr);
示例:
查询部门号为10的部门的最高薪水
💐1.5找出最小值——min( )
要想一眼看出来谁最小,我们可以使用min()一键完成
语法:
min([distinct] expr);
示例:
查看部门号为10的部门中的最低薪资
📗2.日期函数
📅2.1获得年月日——current_date函数
语法:
current_date();
- 无参数
示例:
查看当前 年月日
🕗2.2获得时分秒——current_time函数
语法:
current_time();
- 无参数
示例:
查看当前 时分秒
🔖2.3获得时间戳——current_timestamp函数
语法:
current_timestamp();
示例:
获得当前 时间戳
2.4加上时间——date_add函数
当你想要看看当前日期,加上一定天数,是什么时候时
可以使用date_add函数帮你一键计算!
语法
date_add('yyyy-mm-dd',interval num day);
示例:
我想看看365天后的今天,是什么时候
🔎2.5减去时间——date_sub函数
记性很差的人,经常会忘记前几天是什么时候
date_sub函数,就会帮你回忆起来,获得过去日期
语法:
date_sub('yyyy-mm-dd',interval num day);
示例:
查看365天前是什么时候
📉2.6计算相差天数——dateidff函数
🔥学习很苦,坚持很苦🔥
如果你想看看,你已经坚持学习多少天了,就可以使用dateidff函数一键获取
语法:
datediff('yyyy-mm-dd','yyyy-mm-dd');
- 第一个日期参数减去第二个日期参数
示例:
今天离中国人第一次进入太空距离多少天呢?
📙3.字符串函数
✏️3.1连接字符串——concat( )
我们会有这样的需求:需要将一行数据记录中各个字段的值拼接成一个字符串
这时候,就可以使用concat函数来进行拼接,并且可以添加一些提示信息
语法:
concat(sting1,string2,......);
示例:
要求显示examp_result表中的信息
显示格式:"XXX的语文是XXX分,数学XXX分,英语XXX分"
🖊3.2转换成大写——ucase( )
我们使用ucase函数
可以将一个字符串中所有的小写字母替换成对应的大写字母
语法:
ucase(string1);
示例:
将 'AbCdEf' 中的小写全部替换成大写
🖋3.3转换成小写——lacse( )
我们使用uacase函数
可以将一个字符串中所有的大写字母替换成对应的小写字母
语法:
lcase(string1);
示例:
将 'AbCdEf' 中的大写都替换成小写
✒️3.4获取字符串长度——length( )
语法:
length(string1);
示例:
求一个字符串 'AbCdE' 的长度
求一个由三个中文组成的字符串 '陈平安' 的长度
📁3.5替换字符串——replace( )
当字符串中,有一部分发生错误
我们就可以使用replace用正确的字符串去替换其中的错误部分
语法:
replace(str,search_str,replace_str)
示例:
用 '安' 去替换 '陈平方' 中的 '方'
📘4.数学函数
📏4.1求绝对值——abs函数
语法:
abs(number);
示例:
对 7 取绝对值
对 -7 取绝对值
📏4.2向上取整——ceiling函数
什么是向上取整?
向上取整,就是向上靠齐
就像你父母小时候会和你说的一句话“孩子,多和成绩好的同学一起玩”
比如你考89.5,你和99的同学一起玩
在你父母眼里,久而久之,向上取整,你就考90了
向上取整,就是舍弃小数,整数+1
语法:
ceiling(number);
示例:
对89.5向上取整
对-89.5向上取整
说明:
- 正数向上取整向绝对值更大的方向靠近
- 负数向上取整向绝对值更小的方向靠近
📏4.3向下取整——floor函数
什么是向下取整?
向下取整,就是向下靠齐
你可能比较调皮,不喜欢把心思放在学习上,喜欢玩
原本你能考79.5,一直玩到下次考试
你就考了79了
所以,向下取整,就是舍弃小数,整数-1
语法:
floor(number);
示例:
对 79.5 向下取整
对-79.5 向下取整
说明:
- 正数向下取整就是向绝对值更小靠近
- 负数向下取整就是向绝对值更大靠近
📏4.4保留n位小数——format函数
当对数据精度要求不是很高的时候
我们可以使用 format函数 选择性去掉一些小数
语法:
format(number,decimal_place);
示例:
对进行 3.1415926 保留两位小数
📏4.5获取随机数——rand函数
我们有些时候,需要一些随机值,来代表偶然性
这时候,就可以使用rand来获取随机值
语法:
rand();
示例:
生成一个随机数
对随机数进行乘法操作
📕5.group by
不同行数据记录之间,也会因为一些字段值相同,而存在某种关系
具有相同字段值的一些行数据记录,我们可以将其视为同组数据
这样,庞大的行数据记录也可以被划分为更小的几组
我们使用关键字group by 对表的数据进行分组
语法:
select 列名1,...... from 表名 where 条件 gruop by 列名1,......;
示例:
先有一张emp表
上面有多条员工信息记录,仔细观察,就会发现
员工的部门号只有三个值:10、20、30
我们可以根据部门号,对员工进行分组
现在,用部门号对员工分组,并查看每个部门有多少人
现在,查看每个部门的最高工资,最低工资,平均工资
想看看,每个部门中有谁吗?
试试看,显示出,每个部门中的每个员工姓名
报错了,MySQL无法执行
为什么呢?🤔
这设计到SQL语句执行顺序的关系,里面的水太深,你暂时把握不住
但目前你只要知道,group by 是可以和聚合函数配合的 即可
总结
本章关于函数的认识到此为止,我们主要介绍了一些常用的数据库基础函数
还有很多没有介绍的函数,因为不经常用,所以不解释
目前掌握这些函数,就足够了
留下一个坑:SQL语言的执行顺序
下一文章讲解!
如果有帮助,点赞收藏评论加关注!