MySQL函数深度探索:聚合、日期及字符串函数全面解析

MySQL函数深度剖析:聚合、日期与字符串函数详解

文章目录

  • MySQL系列
  • 引言
  • 一、聚合函数
  • 二、日期函数
  • 三、字符串函数
  • 四、数学函数
  • 五、其他函数

引言

MySQL具备众多内置函数,可用于数据处理、计算执行以及格式转换等操作,本篇将会阐述MySQL中常用的一些函数。本文内容以实践为主


此处的函数较为基础,不再展开解释,若再赘述便有牵强之感

上篇文章:MySQL数据操作全流程:创建、读取、更新与删除实战

一、聚合函数

这部分函数较为基础

函数名 作用 示例 结果
SUM(col) 求和 SUM(amount) 所有 amount 的总和
AVG(col) 求平均值 AVG(age) 平均年龄
COUNT(col) 统计非NULL值的数量 COUNT(id) 行数
COUNT(*) 统计总行数(包含NULL) COUNT(*) 总行数
MAX(col) 求最大值 MAX(score) 最高分数
MIN(col) 求最小值 MIN(price) 最低价格

测试表

CREATE TABLE students (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
sn INT NOT NULL UNIQUE COMMENT '学号',
name VARCHAR(20) NOT NULL,
qq VARCHAR(20)
);

create table exam_result (
id int unsigned primary key auto_increment,
name varchar(20) not null comment '同学姓名',
chinese float default 0.0 comment '语文成绩',
math float default 0.0 comment '数学成绩',
english float default 0.0 comment '英语成绩'
);

表内容

在这里插入图片描述
在这里插入图片描述

本文主要以上述两表进行测试,上篇文章已创建,此处直接使用

1、统计班级共有多少同学

select count(*) from students;

在这里插入图片描述
2、统计班级有多少 qq 号

select count(qq) from students;

在这里插入图片描述
对比上表可知count函数对NULL值不进行统计。

3、统计本次考试的数学成绩分数个数

select count(math) from exam_result;

在这里插入图片描述
对比上表可知count函数对重复值不进行统计。

4、统计数学成绩不及格人数

select count(math) from exam_result where math<60;

在这里插入图片描述
count函数可配合其他语句使用。

5、统计平均总分

select avg(math+chinese+english) 平均总分 from exam_result ;

在这里插入图片描述

6、返回英语最高分

select max(english)  from exam_result ;

在这里插入图片描述

7、返回 > 70 分以上的数学最低分

select min(math)  from exam_result where math >70;

在这里插入图片描述

二、日期函数

在这里插入图片描述

1、获取当前年月日

select current_date();

在这里插入图片描述
2、获取当前时分秒

select current_time;

在这里插入图片描述
3、获取时间戳

select current_timestamp;

在这里插入图片描述
4、在时间中提取日期部分

select date(current_timestamp());

在这里插入图片描述
5、在日期的基础上加上日期

select date_add(current_date,interval 10 day);

在这里插入图片描述
获取当前日期,并在该日期基础上增加十天

interval后可根据需求使用不同单位(年、月、日、分、秒)

6、在日期的基础上减去日期

select date_sub(current_date,interval 10 day);

MySQL函数深度探索:聚合、日期及字符串函数全面解析
获取当前日期,并在该日期基础上减去十天

7、计算两个日期之间相差多少天

select datediff(current_date,'1949-10-01');

在这里插入图片描述
中国成立,距今多少天

8、获取当前日期和时间

select now();

在这里插入图片描述

9、测试

//创建一个留言表
create table msg (
id int primary key auto_increment,
content varchar(30) not null,
sendtime datetime
);
//向表中插入测试数据
insert into msg(content,sendtime) values('hello1', now());
insert into msg(content,sendtime) values('hello2', now());

select * from msg;

显示所有留言信息,发布日期只显示日期,不用显示时间:
在这里插入图片描述
查询在1分钟内发布的帖子:

在这里插入图片描述
可见日期可直接进行比较

三、字符串函数

函数可配合select操作对表中数据进行操作,此处仅对部分场景进行演示
在这里插入图片描述
1、查看字符串的字符集

select charset(string);

在这里插入图片描述

2、要求显示exam_result表中的信息,显示格式:“XXX的语文分:XXX,数学分:XXX,英语分:XXX”
在这里插入图片描述
3、在字符串中查找字符串

select instr(string,substring);

string中查找字符串substring出现的位置,找到返回下标(从1开始),未找到返回0。

MySQL函数深度探索:聚合、日期及字符串函数全面解析

当目标字符串重复出现时,返回第一次出现的下标

4、字符串转为大写

select ucase(strig);

MySQL函数深度探索:聚合、日期及字符串函数全面解析
5、字符串转为小写

select lcase(string);

在这里插入图片描述
6、从字符串左端提取len个字符

select left(string,len);

在这里插入图片描述
6、从字符串右端提取len个字符

select right(string,len);

在这里插入图片描述

7、求字符串占用的字节数

selecty

在这里插入图片描述

length()函数在MySQL中计算字符串的字节长度,非字符个数,当前使用字符集汉字占三个字节。

8、在字符串中进行字符串的替换 replace

select replace(substring,string,str);

substring中查找string,并将其替换为str
在这里插入图片描述此替换方式不影响原表内容,未找到则不处理

9、字符串截取 substring

select substring(string,pos,len);

MySQL函数深度探索:聚合、日期及字符串函数全面解析
从字符串stringpos处开始,向后截取len个字符。

10、去除字符串中最开始和最后的空格 trim

  • trime:去除字符串两端空格
  • ltrim:去除字符串最左边的空格
  • rtrim:去除字符串右边的

在这里插入图片描述

保存用户信息数据时,一般先对数据执行去除空格操作。因网络传输可能引入不可见空字符,若直接存储含此类字符的数据,后续用户登录时,如输入密码因存在空格匹配不上,会引发登录失败问题且排查困难。所以,要先过滤字符串中的空格,再将处理后数据存入数据库,规避因隐性空格导致的登录故障

四、数学函数

在这里插入图片描述
1、abs 取绝对值

select abs(N);

在这里插入图片描述
2、bin 转二进制

select bin(N);

在这里插入图片描述
可见对小数进行二进制转换时,会向下取整后操作。

3、hex 转十六进制

select hex(N);

在这里插入图片描述
4、 conv 进制转换

select conv(N,fromm_base,to_base);

将数字Nfrom_base进制转换成to_base进制.
在这里插入图片描述
5、format 格式化,保留小数

select format(N,D);

在这里插入图片描述

N保留D位小数,小数部分遵循四舍五入,不够补0.

6 mod 取模

select mod(x,y);

在这里插入图片描述
mod返回xy取模的值,负数取模方式可自行尝试。
7、rand生成随机数

select rand();

在这里插入图片描述

生成0.0~1.0的数,若要指定范围可直接10n(如10则为0~10)

8、ceiling 向上取整

select ceiling(N);

在这里插入图片描述
可见向上取整是去掉小数部分直接+1;

9、floor 向下取整

select floor(N);

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7d6d889a4930416cb82bc69577a4aa74

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/13548.html

(0)
LomuLomu
上一篇 2025 年 9 月 14 日
下一篇 2025 年 9 月 14 日

相关推荐

  • 限时领取webstorm激活码,配套最强webstorm破解教程同步上线

    申明:本教程 WebStorm破解补丁、激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版 ! 废话不多说,先上 WebStorm 2025.2.1 版本破解成功的截图,如下图,可以看到已经成功破解到 2099 年辣,舒服的很! 接下来就给大家通过图文的方式分享一下如何破解最新的WebStorm。 如果觉得…

    2025 年 10 月 19 日
    3900
  • CLion破解码怎么获取?推荐几个实用工具!

    声明:本教程所涉及的 Clion 破解补丁与激活码均搜集自互联网,仅供个人学习参考,严禁商用。若条件允许,请支持正版! 先放一张成功激活到 2099 年的截图镇楼,爽到飞起! 下面用图文方式手把手教你搞定 Clion 2025.2.1 的激活。 前期准备 ⚠️ 如果你之前尝试过其他补丁失败,建议先卸载旧版并重新安装;或者手动删除配置后再操作。放心删,不会动到…

    2025 年 9 月 21 日
    8700
  • 2025年最新PyCharm激活码分享 | 永久破解教程+注册码获取指南

    本方法完美适配Jetbrains全家桶(包括IDEA、PyCharm、DataGrip、Golang等)! 先给大家看看最新PyCharm版本成功破解的实锤截图,有效期直达2099年,绝对靠谱! 下面我将用最详细的图文教程,手把手教你如何将PyCharm激活至2099年。这个方法不仅适用于最新版本,旧版本同样有效! 兼容所有操作系统(Windows/Mac/…

    PyCharm激活码 2025 年 7 月 9 日
    26200
  • 2025年蓝桥杯Java B组赛题深度剖析与解题策略

    作为一名连续两年参与蓝桥杯软件类Java B组竞赛的选手,我深刻体会到这项赛事对参赛者算法功底和临场应变能力的全面考验。今年的题目延续了蓝桥杯”夯实基础、鼓励创新”的命题风格,每道试题都像精心设计的思维迷宫,等待着选手用代码这把钥匙来开启。本文将系统梳理本届Java B组的典型赛题,通过全新的视角解析解题思路,分享编程实践中遇到的典型问题及其解决方案。这些内…

    未分类 2025 年 5 月 15 日
    21800
  • PyCharm激活教程2025最新版!图文+视频双版本!

    免责声明:本文所涉及的 PyCharm 破解补丁与激活码均来源于互联网公开渠道,仅供个人学习与研究之用,禁止任何商业用途。若条件允许,请支持正版!如有侵权,请联系作者删除。 先放一张 PyCharm 2025.2.1 破解成功的截图镇楼——可以看到授权有效期直接飙到 2099 年,爽翻! 下面用图文一步步演示如何给最新版 PyCharm 打上“永久”补丁。 …

    PyCharm激活码 2025 年 9 月 9 日
    79000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信