【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…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...