【MySQL】:高效利用MySQL函数实用指南
文章目录
- 📑前言
- 一. MySQL函数概论
- 二. 字符串函数
- 三. 数值函数
- 四. 日期函数
- 五. 流程函数
- 🌤️全篇总结
📑前言
MySQL中的函数是一种强大的工具,可以帮助我们在数据库中快速处理数据,完成各种业务需求。本文将深入介绍MySQL中的字符串函数、数值函数、日期函数和流程函数,通过实例演示和详细解释,帮助读者掌握这些函数的使用方法,从而提高数据库操作的效率和灵活性。
一. MySQL函数概论
函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在MySQL中已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。 那么,函数到底在哪儿使用呢?

- 在企业的OA或其他的人力系统中,经常会提供的有这样一个功能,每一个员工登录上来之后都能够看到当前员工入职的天数。 而在数据库中,存储的都是入职日期,如 2000-11-12,那如果快速计算出天数呢?
- 在做报表这类的业务需求中,我们要展示出学员的分数等级分布。而在数据库中,存储的是学生的分数值,如98/75,如何快速判定分数的等级呢?
其实,上述的这一类的需求呢,我们通过MySQL中的函数都可以很方便的实现 。
MySQL中的函数主要分为以下四类: 字符串函数、数值函数、日期函数、流程函数。
二. 字符串函数
MySQL中内置了很多字符串函数,常用的几个如下:
| 函数 | 功能 |
|---|---|
| CONCAT(S1,S2,…Sn) | 字符串拼接,将S1,S2,… Sn拼接成一个字符串 |
| LOWER(str) | 将字符串str全部转为小写 |
| UPPER(str) | 将字符串str全部转为大写 |
| LPAD(str,n,pad) | 左填充,用字符串pad对str的左边进行填充,达到n个字符 串长度 |
| RPAD(str,n,pad) | 右填充,用字符串pad对str的右边进行填充,达到n个字符 串长度 |
| TRIM(str) | 去掉字符串头部和尾部的空格 |
| SUBSTRING(str,start,len) | 返回从字符串str从start位置起的len个长度的字符串 |
演示如下:
A. concat : 字符串拼接
select concat('Hello' , ' MySQL');
B. lower : 全部转小写
select lower('Hello');
C. upper : 全部转大写
select upper('Hello');
D. lpad : 左填充
select lpad('01', 5, '-');
E. rpad : 右填充
select rpad('01', 5, '-');
F. trim : 去除空格
select trim(' Hello MySQL ');
G. substring : 截取子字符串
select substring('Hello MySQL',1,5);
三. 数值函数
常见的数值函数如下:
| 函数 | 功能 |
|---|---|
| CEIL(x) | 向上取整 |
| FLOOR(x) | 向下取整 |
| MOD(x,y) | 返回x/y的模 |
| RAND() | 返回0~1内的随机数 |
| ROUND(x,y) | 求参数x的四舍五入的值,保留y位小数 |
演示如下:
A. ceil:向上取整
select ceil(1.1);
B. floor:向下取整
select floor(1.9);
C. mod:取模
select mod(7,4);
D. rand:获取随机数
select rand();
E. round:四舍五入
select round(2.344,2);
四. 日期函数
常见的日期函数如下:
| 函数 | 功能 |
|---|---|
| CURDATE() | 返回当前日期 |
| CURTIME() | 返回当前时间 |
| NOW() | 返回当前日期和时间 |
| YEAR(date) | 获取指定date的年份 |
| MONTH(date) | 获取指定date的月份 |
| DAY(date) | 获取指定date的日期 |
| DATE_ADD(date, INTERVAL expr type) | 返回一个日期/时间值加上一个时间间隔expr后的 时间值 |
| DATEDIFF(date1,date2) | 返回起始时间date1 和 结束时间date2之间的天 数 |
演示如下:
A. curdate:当前日期
select curdate();
B. curtime:当前时间
select curtime();
C. now:当前日期和时间
select now();
D. YEAR , MONTH , DAY:当前年、月、日
select YEAR(now());
select MONTH(now());
select DAY(now());
E. date_add:增加指定的时间间隔
select date_add(now(), INTERVAL 70 YEAR );
F. datediff:获取两个日期相差的天数
select datediff('2021-10-01', '2021-12-01');
五. 流程函数
流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。
| 函数 | 功能 |
|---|---|
| IF(value , t , f) | 如果value为true,则返回t,否则返回 f |
| IFNULL(value1 , value2) | 如果value1不为空,返回value1,否则 返回value2 |
| CASE WHEN [ val1 ] THEN [res1] … ELSE [ default ] END | 如果val1为true,返回res1,… 否 则返回default默认值 |
| CASE [ expr ] WHEN [ val1 ] THEN [res1] … ELSE [ default ] END | 如果expr的值等于val1,返回 res1,… 否则返回default默认值 |
演示如下:
A. if
select if(false, 'Ok', 'Error');
B. ifnull
select ifnull('Ok','Default');
select ifnull('','Default');
select ifnull(null,'Default');
C. case when then else end
需求: 查询emp表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)
selectname,( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else'二线城市' end ) as '工作地址'
from emp;
🌤️全篇总结
本文详细介绍了MySQL中常用的字符串函数、数值函数、日期函数和流程函数,包括各种函数的功能、语法和实际应用。通过学习本文,读者可以掌握在实际业务场景中如何灵活运用这些函数,从而更高效地处理数据库中的数据,满足各种业务需求。

相关文章:
【MySQL】:高效利用MySQL函数实用指南
🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. MySQL函数概论二. 字符串函数三. 数值函数四. 日期函数五. 流程函数…...
vue3+electron开发桌面应用,静态资源处理方式及路径问题总结
目录 1、静态资源放到src/assets/目录下 2、静态路径和动态路径的写法 3、编译时vite.config.js的配置...
2024全国水科技大会暨高氨氮废水厌氧氨氧化处理技术论坛(四)
一、会议背景 为积极应对“十四五”期间我国生态环境治理面临的挑战,加快生态环境科技创新,构建绿色技术创新体系,全面落实科学技术部、生态环境部等部委编制的《“十四五”生态环境领域科技创新专项规划》,积极落实省校合作&…...
基于springboot+vue的美食推荐商城
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 主要内容:毕业设计(Javaweb项目|小程序|Pyt…...
AI推介-多模态视觉语言模型VLMs论文速览(arXiv方向):2024.02.05-2024.02.10
论文目录~ 1.ViGoR: Improving Visual Grounding of Large Vision Language Models with Fine-Grained Reward Modeling2.CLIP-Loc: Multi-modal Landmark Association for Global Localization in Object-based Maps3.Exploring Visual Culture Awareness in GPT-4V: A Compre…...
华为笔记本自带windows11如何改为win10
目录 一、前言 二、遇到问题 三、问题解决 一、前言 新购买的华为笔记本电脑自带windows11系统,虽然是正版系统,但还是希望能重新装Windows10版本。一是我已经习惯此系统,二是该系统上运行的开发工具比较稳定。 二、遇到问题 说干就干&…...
Axios 面试题
Axios 面试题 问题描述: 什么是 Axios?它的主要特点是什么? 答案: Axios 是一个基于 Promise 的 HTTP 客户端库,用于在浏览器和 Node.js 中发送 HTTP 请求。它具有以下主要特点: 支持浏览器和 Node.js 环境…...
速盾:cdn服务器怎么做
CDN(Content Delivery Network)即内容分发网络,是一种通过将内容(如网页、图片、视频等)缓存到离用户较近的服务器上,以提升用户访问速度和减轻源服务器负载的解决方案。在CDN中,CDN服务器是承担…...
基础小白快速入门c语言--
变量: 表面理解:在程序运行期间,可以改变数值的数据, 深层次含义:变量实质上代表了一块儿内存区域,我们可以将变量理解为一块儿内存区域的标识,当我们操作变量时,相当于操作了变量…...
CI/CD:安装配置Gitlab Runner
CI/CD笔记 安装配置Gitlab Runner - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/136296840 Address of this art…...
【Spring连载】使用Spring Data访问 MongoDB----对象映射之JSON Schema
【Spring连载】使用Spring Data访问 MongoDB----对象映射之JSON Schema 一、生成Schema二、加密字段三、JSON Schema类型 从3.6版本开始,MongoDB支持根据提供的 JSON Schema验证documents的集合。在创建集合时,可以定义schema本身以及验证操作和级别&…...
用于游戏开发的顶级 PYTHON 框架
一、说明 我们试图用python开发游戏,一旦产生这个念头,就伴随这样一个问题:当今用于构建游戏的领先 Python 框架有哪些?python下,支持游戏开发平台有哪些优势?我们在这篇博文中告诉你。 二、高级游戏平台简…...
【MongoDB】docker安装mongodb 7.0
下载镜像 docker pull mongo创建本地数据存储文件夹 rootxrx:~/etc# tree mongodb/ mongodb/ └── data使用docker创建容器,并挂载配置文件,并设置密码 docker run -p 5233:27017 -v /root/etc/mongodb/data:/data/db --name mongo -e MONGO_INITDB_ROOT_USERNAMEroot -…...
win10安全中心误删文件怎么办?解析恢复与预防策略
在使用Windows 10的过程中,许多用户依赖于其内置的安全中心来保护电脑免受恶意软件的侵害。然而,有时安全中心的误判可能导致重要文件被错误地删除。当面对这种情况时,了解如何恢复误删的文件并掌握预防措施显得尤为重要。本文将为您详细解析…...
如何锁定MYSQL内存在物理内存里?
MYSQL 8.0 这个参数是 OFF 这个参数是啥意思呢? 按英文单词理解是 锁定在内存意思.突然想起来是因为 周报巡检时主库有使用SWAP内存 而从库却使用更多 使用脚本查看SWAP 进程排序 for i in cd /proc;ls |grep "^[0-9]"|awk $0 >100 ;do awk /Swap:/{aa$2} EN…...
vue菜单栏跳转方案
vue菜单栏跳转方案 <template><div><el-container style"height: 100vh"><el-aside width"200px" style"background-color: #b3c0d1"><el-menuopen"handleOpen"close"handleClose"select"h…...
科技企业如何做到FTP数据安全保护
在数字化浪潮的推动下,科技企业的数据已成为推动创新、提升效率、增强竞争力的核心资源。数据的重要性不言而喻,它不仅包含了客户信息、市场分析、产品设计等关键信息,更是企业宝贵的资产。然而,随着数据量的激增,数据…...
Ubuntu服务器fail2ban的使用
作用:限制ssh远程登录,防止被人爆破服务器,封禁登录ip 使用lastb命令可查看到登录失败的用户及ip,无时无刻的不在爆破服务器 目录 一、安装fail2ban 二,配置fail2ban封禁ip的规则 1,进入目录并创建ssh…...
全量知识系统问题及SmartChat给出的答复 之10 三套工具之5语法解析器之3
Q27. 从前面可以看出,IPP解析器给出两种文法规则,一种是人工的(文字处理和文本理解),一种是机器的(图形算法和图像处理)。前者可以是一套文写文章的注释工具的底层,可以使用颜色来着…...
【leetcode】环形链表✚环形链表II
大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 1.环形链表解题拓展: 2.环形链表II 1.环形链表 点击查看题目 解题 思路: bool hasCycle…...
临床医生也能懂的蛋白质组学:疾病标志物发现全流程解析
临床医生也能懂的蛋白质组学:疾病标志物发现全流程解析 在肝癌诊疗中,我们常遇到这样的困境:当超声发现肝脏占位时,患者往往已进入中晚期。而甲胎蛋白(AFP)作为传统标志物,其敏感性和特异性仅约…...
PDE (Processing D Editor) 三维场景编辑器 · 软件白皮书 · 基于 v..影
MySQL 中的 count 三兄弟:效率大比拼! 一、快速结论(先看结论再看分析) 方式 作用 效率 一句话总结 count(*) 统计所有行数 最高 我是专业的!我为统计而生 count(1) 统计所有行数 同样高效 我是 count(*) 的马甲兄弟…...
Jaffree实战指南:10个高效Java视频处理技巧
1. 为什么选择Jaffree处理视频? 在Java生态中处理视频一直是个头疼的问题。我刚开始做视频处理项目时,尝试过直接调用FFmpeg命令行,结果被各种字符串拼接和进程管理折磨得够呛。直到发现了Jaffree这个宝藏库,它完美解决了Java调用…...
3步诊断法:彻底优化ControlNet-v1-1_fp16_safetensors图像控制效果
3步诊断法:彻底优化ControlNet-v1-1_fp16_safetensors图像控制效果 【免费下载链接】ControlNet-v1-1_fp16_safetensors 项目地址: https://ai.gitcode.com/hf_mirrors/comfyanonymous/ControlNet-v1-1_fp16_safetensors ControlNet-v1-1_fp16_safetensors是…...
被TMM拒稿后,我是如何用7个月时间在ACM TOMM上成功发表的(附详细修改清单)
从TMM拒稿到TOMM录用:一位研究者的7个月逆袭全记录 当那封来自TMM编辑部的拒稿邮件出现在收件箱时,我盯着屏幕足足五分钟没动——这是我们团队第三次大修后的最终裁决。作为博士生涯的第四篇论文,这次打击远比想象中严重。但正是这次挫败&…...
智能解放双手:MAA如何让明日方舟日常任务自动化
智能解放双手:MAA如何让明日方舟日常任务自动化 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitcode.c…...
告别臃肿!Dell G15开源散热控制神器tcc-g15完全指南
告别臃肿!Dell G15开源散热控制神器tcc-g15完全指南 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 你是否正在为Dell G15笔记本的散热问题烦恼&am…...
OPC研究院介绍
OPC研究院介绍一、定位与使命OPC研究院(全称:专知智库OPC研究院)是专知智库旗下专注于意义文明基础设施建设的核心研究机构。它以“OPC”为核心理念,致力于推动意义从哲学概念走向社会实践,从个体体验到可流通资产&…...
【计算机网络】TCP三次握手与四次挥手,看完这篇就懂了
在当今互联网时代,TCP协议作为网络通信的基石,其核心机制——三次握手与四次挥手,直接影响着数据传输的可靠性和效率。你是否好奇为什么建立连接需要三次交互,而关闭连接却要四次?本文将用通俗易懂的语言,带…...
在RK3568上从零开始:用V4L2和MPP框架驱动IMX415摄像头获取实时码流(附完整代码流程)
RK3568实战:V4L2MPP驱动IMX415摄像头全流程解析 刚拿到RK3568开发板和IMX415摄像头模组时,我对着官方文档发呆了半小时——这堆专业术语和代码片段看得人头皮发麻。作为嵌入式Linux开发者,我们真正需要的是从设备树配置到码流获取的完整操作指…...
