MySQL数据库中的函数怎样使用?
函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在MySQL中已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。 那么,函数到底在哪儿使用呢?
我们先来看两个场景:

1). 在企业的OA或其他的人力系统中,经常会提供的有这样一个功能,每一个员工登录上来之后都能够看到当前员工入职的天数。而在数据库中,存储的都是入职日期,如2000-11-12,那如果快速计算出天数呢?
2). 在做报表这类的业务需求中,我们要展示出学员的分数等级分布。而在数据库中,存储的是学生的分数值,如98/75,如何快速判定分数的等级呢?其实,上述的这一类的需求呢,我们通过MySQL中的函数都可以很方便的实现。
MySQL中的函数主要分为以下四类:字符串函数、数值函数、日期函数、流程函数。
字符串函数
MySQL中内置了很多字符串函数,常用的几个如下:

演示如下:
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);案例:

由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0。比如: 1号员工的工号应该为00001。
update emp set workno =lpad(workno,5,'0');处理完毕后, 具体的数据为:

数值函数
常见的数值函数如下:

演示如下:
A. ceil:向上取整
select ceil(1.1);B. floor:向下取整
select floor(1.9);C. mod:取模
select mod(7,4);1D. rand:获取随机数
select rand();E. round:四舍五入
select round(2.344,2);案例:
通过数据库的函数,生成一个六位数的随机验证码。
思路: 获取随机数可以通过rand()函数,但是获取出来的随机数是在0-1之间的,所以可以在其基础上乘以1000000,然后舍弃小数部分,如果长度不足6位,补0。
select lpad(round(rand()*1000000,0),6,'0');日期函数
常见的日期函数如下:

演示如下:
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');案例:
查询所有员工的入职天数,并根据入职天数倒序排序。入职天数,就是通过当前日期 - 入职日期,所以需要使用datediff函数来完成。
select name,datediff(curdate(), entrydate) as 'entrydays' from emp order by
entrydays desc;流程函数
流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。

演示如下:
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;案例:
create table score(
id int comment 'ID',
name varchar(20) comment '姓名',
math int comment '数学',
english int comment '英语',
chinese int comment '语文') comment '学员成绩表';
insert into score(id, name, math, english, chinese)VALUES(1,'Tom',67,88,95),(2,'Rose',23,66,90),(3,'Jack',56,98,76);具体的SQL语句如下:
select
id,
name,(case when math >=85 then '优秀' when math >=60 then '及格'else'不及格' end )'数学',(case when english >=85 then '优秀' when english >=60 then '及格'else'不及格'
end )'英语',(case when chinese >=85 then '优秀' when chinese >=60 then '及格'else'不及格'
end )'语文'
from score;MySQL的常见函数我们学习完了,那接下来,我们就来分析一下,在前面讲到的两个函数的案例场景,思考一下需要用到什么样的函数来实现?
1). 数据库中,存储的是入职日期,如 2000-01-01,如何快速计算出入职天数呢? -------->
答案: datediff
2). 数据库中,存储的是学生的分数值,如98、75,如何快速判定分数的等级呢? ---------->
答案: case ... when ...
相关文章:
MySQL数据库中的函数怎样使用?
函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在MySQL中已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。 那么,函数到底在哪儿使用呢?我们先来看两个场景&…...
命名空间的使用大全
概述 在C中,我们会使用变量、常量、函数、类、对象、结构体等各种元素。随着工程越来越庞大,代表这些元素的标识符冲突的概率也越来越大。为了解决标识符命名冲突的问题,C标准在1995年引入了关键字namespace,也叫做命名空间。使用…...
Redisson分布式锁和同步器详解-官方原版
一、锁定基于Redis的Java分布式可重入锁对象,并实现了锁接口。如果获取锁的Redisson实例崩溃,则此类锁可能会在获取状态下永久挂起。为了避免这种Redisson维护锁看门狗,当锁持有者Redisson实例处于活动状态时,它会延长锁的到期时间…...
【C语言进阶】指针与数组、转移表详解
前言 大家好我是程序猿爱打拳,我们在学习完指针的基本概念后知道了指针就是地址,我们可以通过这个地址并对它进行解引用从而改变一些数据。但只学习指针的基础是完全不够的,因此学习完指针的基础后我们可以学习关于指针的进阶,其中…...
SDN是什么,和SD-WAN有什么关系
SDN全称为“软件定义网络”(Software-Defined Networking),是一种新型的网络架构,通过将网络的控制面和数据面分离,将网络控制集中到控制器中进行统一管理和配置,以提高网络的灵活性和可管理性。传统网络的…...
百度前端高频react面试题(持续更新中)
说说你用react有什么坑点? 1. JSX做表达式判断时候,需要强转为boolean类型 如果不使用 !!b 进行强转数据类型,会在页面里面输出 0。 render() {const b 0;return <div>{!!b && <div>这是一段文本</div>}</div…...
中级嵌入式系统设计师2016下半年下午应用设计试题
中级嵌入式系统设计师2016下半年下午试题 试题一 阅读以下说明,回答问题1至问题3。 【说明】 某综合化智能空气净化器设计以微处理器为核心,包含各种传感器和控制器,具有检测环境空气参数(包含温湿度、可燃气体、细颗粒物等),空气净化、加湿、除湿、加热和杀菌等功能…...
【雅思备考】九分学长写作课笔记
原视频:https://www.bilibili.com/video/BV1FG4y1J7br?p13&vd_source552ac2291179cf9d44088ea168db5531 一、综述 共计1小时 小作文: 描述 图表图(数据图)、流程图(示意图)、地图(示意…...
【源码解析】SpringBoot自动装配的实现原理
什么是SpringBoot的自动装配 SpringBoot在启动的时候会扫描外部jar包中的META-INF/spring.factories文件,将文件中配置的类信息按照条件装配到Spring容器中。 实现原理 核心注解SpringBootApplication Target({ElementType.TYPE}) Retention(RetentionPolicy.R…...
详解ROS时间戳
ROS(Robot Operating System)是一个用于机器人开发的开源软件框架,其中涉及到了一些与时间相关的概念和工具,如时间戳、计时器等。本文将主要介绍ROS中时间戳的概念和应用,并提供一个Python代码案例演示如何处理ROS时间…...
Android Window、WindowManager
1.窗口Window 在Android中显示一个界面,首先想到的是Activity、Dialog或Toast。但是在有些情况下,比如悬浮球,用Activity会显然多余,这个时候可以直接使用窗口来实现。 Android中所有的视图都是通过Window来呈现的,不管是Activity、Dialog还是Toast,它们的视图实际上都…...
【一天一门编程语言】怎样设计一门编程语言?
怎样设计一门编程语言? 确定目标 确定语言的用途: 是一门通用编程语言,还是一门专门面向某个特定目标的语言?是一门面向对象的语言,还是一门过程化的语言?将语言的最终用户定义为谁? 确定语言…...
微服务保护 -- 初识 Sentinel(雪崩问题,快速入门Sentinel)
大家好,今天我们要来学习阿里巴巴开源的流量控制和熔断降级框架 – Sentinel 。 1、雪崩问题及解决方案 首选我们来了解一下雪崩问题及其解决方案,我们学习这个微服务保护,其实就是为了去应对类似于雪崩问题这样的服务故障。 1.1 什么是雪…...
软件测试面试问答
笔试 笔试的话我们需要揣测具体会考什么内容,我们可以通过招聘信息去了解该公司需要什么样的技能,以此来准备笔试。一般必考的内容会有编程,测试用例设计,工作流程,逻辑思维等内容,除此之外每个公司可能还会…...
【架构】架构师的核心能力-抽象能力
文章目录一、通过归纳法找共性二、通过演绎法找关系三、通过归纳法找特性四、最后架构的核心是管理复杂度,架构师的核心能力是抽象能力,什么是抽象能力?抽象能力就是一种化繁为简的能力。何为化繁为简?就是把一种复杂的事情变得简…...
前端一面常见react面试题(持续更新中)
React 组件中怎么做事件代理?它的原理是什么? React基于Virtual DOM实现了一个SyntheticEvent层(合成事件层),定义的事件处理器会接收到一个合成事件对象的实例,它符合W3C标准,且与原生的浏览器…...
亥姆霍兹线圈测量系统
亥姆霍兹线圈[Helmholtz线圈]是指由具有相同线圈匝数、相同线圈绕制方式且线圈半径等于线圈间距的一对或者多对线圈构成的线圈组合。 根据线圈的形状,亥姆霍兹线圈可分为圆形亥姆霍兹线圈和方形亥姆霍兹线圈;根据磁场方向,亥姆霍兹线圈可分为…...
JavaScript 类型转换
Number() 转换为数字, String() 转换为字符串, Boolean() 转化为布尔值。JavaScript 数据类型在 JavaScript 中有 5 种不同的数据类型:stringnumberbooleanobjectfunction3 种对象类型:ObjectDateArray2 个不包含任何值的数据类型…...
Spring Batch 综合案例实战-项目准备
目录 案例需求 分析 项目准备 步骤1:新开spring-batch-example 步骤2:导入依赖 步骤3:配置文件 步骤4:建立employee表与employe_temp表 步骤5:建立基本代码体系-domain-mapper-service-controller-mapper.xml …...
STM32CubeMX串口USART中断发送接收数据
本文代码使用 HAL 库。 文章目录前言一、中断控制二、USART中断使用1. 中断优先级设置 :2. 使能中断3. 使能UART的发送、接收中断4. 中断收发函数5. 中断处理函数6. 中断收发回调函数三、串口中断实验串口中断发送数据点亮 led:实验现象:总结…...
容器安全扫描:保护容器化应用的安全
容器安全扫描:保护容器化应用的安全 一、容器安全扫描概述 1.1 容器安全扫描的定义 容器安全扫描是指对容器镜像和运行中的容器进行安全检测,识别潜在的安全漏洞、恶意软件和配置问题的过程。它是容器安全的重要组成部分。 1.2 容器安全扫描的价值 漏洞检…...
TV Bro电视浏览器终极指南:如何在智能电视上享受免费开源的大屏上网体验
TV Bro电视浏览器终极指南:如何在智能电视上享受免费开源的大屏上网体验 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro TV Bro是一款专为智能电视和遥控器操…...
在OpenClaw项目中配置Taotoken作为OpenAI兼容后端的详细方法
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在OpenClaw项目中配置Taotoken作为OpenAI兼容后端的详细方法 对于使用OpenClaw这类智能体框架的开发者而言,将后端大模…...
别再乱用光源了!FDTD Solutions中TFSF、平面波、高斯光到底怎么选?附避坑指南
FDTD仿真中光源选择的黄金法则:从原理到实战避坑指南 当你第一次打开FDTD仿真软件时,面对Plane wave、Gaussian、TFSF等光源选项,是否感到无从下手?光源选择不当不仅会导致仿真结果失真,更可能让整个计算过程变得毫无…...
ggshield API集成指南:如何将秘密检测融入现有系统
ggshield API集成指南:如何将秘密检测融入现有系统 【免费下载链接】ggshield Detect and validate 500 types of hardcoded secrets with advanced checks. Use it as a pre-commit hook, GitHub Action, or CLI for proactive secret detection and security. 项…...
2025届学术党必备的降重复率平台横评
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在当下这个场景里面,AI技术的广泛应用展现出好多共性问题,像算力空耗…...
【郑州工程技术学院主办,华南理工大学土木与交通学院支持举办 | AP (ISSN: 2352-5401) 出版 | 高录用 | 快见刊】第二届韧性城市与安全工程国际学术会议(ICRCSE 2026)
第二届韧性城市与安全工程国际学术会议(ICRCSE 2026) 2026 2nd International Conference on Resilient City and Safety Engineering 时间地点:2026年6月26-28日 郑州 大会官网:www.icrcse.net【论文投稿】 截稿时间…...
AI语音初创公司Vapi获5000万美元B轮融资,投后估值约5亿美元
5000万美元B轮融资,资方阵容强大5月14日,据TechCrunch报道,AI语音初创公司Vapi宣布完成5000万美元B轮融资,由Peak XV Partners领投,微软M12、凯鹏华盈(Kleiner Perkins)等机构跟投,投…...
别再为固定输入尺寸发愁了:用PyTorch手把手实现SPP层(附完整代码)
突破固定尺寸限制:PyTorch实现空间金字塔池化的工程实践 在计算机视觉任务中,处理不同尺寸的输入图像一直是个令人头疼的问题。想象一下这样的场景:你正在开发一个目标检测系统,训练时所有图像都被统一调整为224224像素ÿ…...
收藏!小白程序员必看:AI应用黄金三年,普通人如何入局高薪岗位?
文章分析了AI应用与智能体时代的就业趋势,指出AI正在重塑岗位能力结构并创造新职业。未来三年,AI应用工程师、AI自动化运营、AI产品经理等岗位需求大、门槛低,适合普通人入局。文章建议从建立AI知识体系、掌握关键技能、完成AI项目入手&#…...
