MySQL 入门大全:常用函数
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,
15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。保持对新技术的好奇心,乐于分享所学,希望通过我的实践经历和见解,启发他人的创新思维。在这里,我希望能与志同道合的朋友交流探讨,共同进步,一起在技术的世界里不断学习成长。
技术合作请加本人wx(注明来自csdn):foreast_sea


MySQL 入门大全:常用函数
MySQL 函数也是我们日常开发过程中经常使用的,选用合适的函数能够提高我们的开发效率,下面我们就来一起认识一下这些函数。
字符串函数
字符串函数是最常用的一种函数了,MySQL 也是支持很多种字符串函数,下面是 MySQL 支持的字符串函数表
| 函数 | 功能 |
|---|---|
| LOWER | 将字符串所有字符变为小写 |
| UPPER | 将字符串所有字符变为大写 |
| CONCAT | 进行字符串拼接 |
| LEFT | 返回字符串最左边的字符 |
| RIGHT | 返回字符串最右边的字符 |
| INSERT | 字符串替换 |
| LTRIM | 去掉字符串左边的空格 |
| RTRIM | 去掉字符串右边的空格 |
| REPEAT | 返回重复的结果 |
| TRIM | 去掉字符串行尾和行头的空格 |
| SUBSTRING | 返回指定的字符串 |
| LPAD | 用字符串对最左边进行填充 |
| RPAD | 用字符串对最右边进行填充 |
| STRCMP | 比较字符串 s1 和 s2 |
| REPLACE | 进行字符串替换 |
下面通过具体的示例演示一下每个函数的用法
- LOWER(str) 和 UPPER(str) 函数:用于转换大小写

- CONCAT(s1,s2 … sn) :把传入的参数拼接成一个字符串

上面把 c xu an 拼接成为了一个字符串,另外需要注意一点,任何和 NULL 进行字符串拼接的结果都是 NULL。

- LEFT(str,x) 和 RIGHT(str,x) 函数:分别返回字符串最左边的 x 个字符和最右边的 x 个字符。如果第二个参数是 NULL,那么将不会返回任何字符串

- INSERT(str,x,y,instr) : 将字符串 str 从指定 x 的位置开始, 取 y 个长度的字串替换为 instr。

- LTRIM(str) 和 RTRIM(str) 分别表示去掉字符串 str 左侧和右侧的空格

- REPEAT(str,x) 函数:返回 str 重复 x 次的结果

- TRIM(str) 函数:用于去掉目标字符串的空格

- SUBSTRING(str,x,y) 函数:返回从字符串 str 中第 x 位置起 y 个字符长度的字符串

- LPAD(str,n,pad) 和 RPAD(str,n,pad) 函数:用字符串 pad 对 str 左边和右边进行填充,直到长度为 n 个字符长度

- STRCMP(s1,s2) 用于比较字符串 s1 和 s2 的 ASCII 值大小。如果 s1 < s2,则返回 -1;如果 s1 = s2 ,返回 0 ;如果 s1 > s2 ,返回 1。

- REPLACE(str,a,b) : 用字符串 b 替换字符串 str 种所有出现的字符串 a

数值函数
MySQL 支持数值函数,这些函数能够处理很多数值运算。下面我们一起来学习一下 MySQL 中的数值函数,下面是所有的数值函数
| 函数 | 功能 |
|---|---|
| ABS | 返回绝对值 |
| CEIL | 返回大于某个值的最大整数值 |
| MOD | 返回模 |
| ROUND | 四舍五入 |
| FLOOR | 返回小于某个值的最大整数值 |
| TRUNCATE | 返回数字截断小数的结果 |
| RAND | 返回 0 - 1 的随机值 |
下面我们还是以实践为主来聊一聊这些用法
- ABS(x) 函数:返回 x 的绝对值

- CEIL(x) 函数: 返回大于 x 的整数

- MOD(x,y),对 x 和 y 进行取模操作

- ROUND(x,y) 返回 x 四舍五入后保留 y 位小数的值;如果是整数,那么 y 位就是 0 ;如果不指定 y ,那么 y 默认也是 0 。

- FLOOR(x) : 返回小于 x 的最大整数,用法与 CEIL 相反

- TRUNCATE(x,y): 返回数字 x 截断为 y 位小数的结果, TRUNCATE 知识截断,并不是四舍五入。

- RAND() :返回 0 到 1 的随机值

日期和时间函数
日期和时间函数也是 MySQL 中非常重要的一部分,下面我们就来一起认识一下这些函数
| 函数 | 功能 |
|---|---|
| NOW | 返回当前的日期和时间 |
| WEEK | 返回一年中的第几周 |
| YEAR | 返回日期的年份 |
| HOUR | 返回小时值 |
| MINUTE | 返回分钟值 |
| MONTHNAME | 返回月份名 |
| CURDATE | 返回当前日期 |
| CURTIME | 返回当前时间 |
| UNIX_TIMESTAMP | 返回日期 UNIX 时间戳 |
| DATE_FORMAT | 返回按照字符串格式化的日期 |
| FROM_UNIXTIME | 返回 UNIX 时间戳的日期值 |
| DATE_ADD | 返回日期时间 + 上一个时间间隔 |
| DATEDIFF | 返回起始时间和结束时间之间的天数 |
下面结合示例来讲解一下每个函数的使用
- NOW(): 返回当前的日期和时间

- WEEK(DATE) 和 YEAR(DATE) :前者返回的是一年中的第几周,后者返回的是给定日期的哪一年

- HOUR(time) 和 MINUTE(time) : 返回给定时间的小时,后者返回给定时间的分钟

- MONTHNAME(date) 函数:返回 date 的英文月份

- CURDATE() 函数:返回当前日期,只包含年月日

- CURTIME() 函数:返回当前时间,只包含时分秒

- UNIX_TIMESTAMP(date) : 返回 UNIX 的时间戳

- FROM_UNIXTIME(date) : 返回 UNIXTIME 时间戳的日期值,和 UNIX_TIMESTAMP 相反

- DATE_FORMAT(date,fmt) 函数:按照字符串 fmt 对 date 进行格式化,格式化后按照指定日期格式显示
我们演示一下将当前日期显示为年月日的这种形式,使用的日期格式是 %M %D %Y。

DATE_ADD(date, interval, expr type)函数:返回与所给日期 date 相差 interval 时间段的日期
interval 表示间隔类型的关键字,expr 是表达式,这个表达式对应后面的类型,type 是间隔类型,MySQL 提供了 13 种时间间隔类型
| 表达式类型 | 描述 | 格式 |
|---|---|---|
| YEAR | 年 | YY |
| MONTH | 月 | MM |
| DAY | 日 | DD |
| HOUR | 小时 | hh |
| MINUTE | 分 | mm |
| SECOND | 秒 | ss |
| YEAR_MONTH | 年和月 | YY-MM |
| DAY_HOUR | 日和小时 | DD hh |
| DAY_MINUTE | 日和分钟 | DD hh : mm |
| DAY_SECOND | 日和秒 | DD hh :mm :ss |
| HOUR_MINUTE | 小时和分 | hh:mm |
| HOUR_SECOND | 小时和秒 | hh:ss |
| MINUTE_SECOND | 分钟和秒 | mm:ss |
- DATE_DIFF(date1, date2) 用来计算两个日期之间相差的天数

查看离 2021 - 01 - 01 还有多少天
流程函数
流程函数也是很常用的一类函数,用户可以使用这类函数在 SQL 中实现条件选择。这样做能够提高查询效率。下表列出了这些流程函数
| 函数 | 功能 |
|---|---|
| IF(value,t f) | 如果 value 是真,返回 t;否则返回 f |
| IFNULL(value1,value2) | 如果 value1 不为 NULL,返回 value1,否则返回 value2。 |
| CASE WHEN[value1] THEN[result1] …ELSE[default] END | 如果 value1 是真,返回 result1,否则返回 default |
| CASE[expr] WHEN[value1] THEN [result1]… ELSE[default] END | 如果 expr 等于 value1, 返回 result1, 否则返回 default |
其他函数
除了我们介绍过的字符串函数、日期和时间函数、流程函数,还有一些函数并不属于上面三类函数,它们是
| 函数 | 功能 |
|---|---|
| VERSION | 返回当前数据库的版本 |
| DATABASE | 返回当前数据库名 |
| USER | 返回当前登陆用户名 |
| PASSWORD | 返回字符串的加密版本 |
| MD5 | 返回 MD5 值 |
| INET_ATON(IP) | 返回 IP 地址的数字表示 |
| INET_NTOA(num) | 返回数字代表的 IP 地址 |
下面来看一下具体的使用
- VERSION: 返回当前数据库版本

- DATABASE: 返回当前的数据库名

- USER : 返回当前登录用户名

- PASSWORD(str) : 返回字符串的加密版本,例如

- MD5(str) 函数:返回字符串 str 的 MD5 值

- INET_ATON(IP): 返回 IP 的网络字节序列

- INET_NTOA(num)函数:返回网络字节序列代表的 IP 地址,与 INET_ATON 相对

相关文章:
MySQL 入门大全:常用函数
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
轻量级TLS反向代理工具TLS-reverse-proxy:打造安全通信桥梁
在数字化浪潮席卷全球的今天,数据隐私与传输安全已成为企业及个人的核心关切。TLS(传输层安全协议)作为互联网通信的"隐形卫士",承担着保护数据在传输过程中不被窃取或篡改的重要使命。然而,对于许多传统服务…...
SpringBoot3实战(SpringBoot3+Vue3基本增删改查、前后端通信交互、配置后端跨域请求、数据批量删除(超详细))(3)
目录 一、从0快速搭建SpringBoot3工程、SpringBoot3集成MyBatis、PageHelper分页查询的详细教程。(博客链接) 二、实现前端与后端通信对接数据。(axios工具) (1)安装axios。(vue工程目录) (2)封装请求工具类。(request.js) <1&…...
AF3 Rotation 类解读
Rotation 类(rigid_utils 模块)是 AlphaFold3 中用于 3D旋转 的核心组件,支持两种旋转表示: 1️⃣ 旋转矩阵 (3x3) 2️⃣ 四元数 (quaternion, 4元向量) 👉 设计目标: 允许灵活选择 旋转矩阵 或 四元数 封装了常用的 旋转操作(组合、逆旋转、应用到点上等) 像 torch.…...
JVM垃圾回收笔记02-垃圾回收器
文章目录 前言1.串行(Serial 收集器/Serial Old 收集器)Serial 收集器Serial Old 收集器相关参数-XX:UseSerialGC 2.吞吐量优先(Parallel Scavenge 收集器/Parallel Old 收集器)Parallel Scavenge 收集器Parallel Old 收集器相关参数-XX:UseParallelGC ~ -XX:UseParallelOldGC-…...
Linux上位机开发实战(编写API库)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 我们自己编写linux上位机软件的时候,尽量都是通过框架库的形式来开发。这就是所谓的低耦合,高内聚。相似的功能、模块和算法…...
深入浅出JVM性能优化:从理论到实践
一、JVM架构与内存模型深度解析 1.1 JVM运行时数据区全景图 方法区(元空间):存储类信息、常量池等元数据堆内存:对象实例存储核心区域 Young Generation(新生代) Eden区(对象诞生地࿰…...
Redis Sentinel 详解
Redis Sentinel 详解 1. 什么是 Redis Sentinel?有什么用? Redis Sentinel(哨兵) 是 Redis 官方提供的高可用性解决方案,主要用于监控、通知和自动故障转移。当 Redis 主节点(master)发生故障…...
器件功耗模型原理
器件功耗模型原理 谷歌提供了一套通用的器件耗电模型和配置方案,先对器件进行耗电因子拆解,建立器件功耗模型,得到一个器件耗电的计算公式。通过运行时统计器件的使用数据,代入功耗模型,就可以计算出器件的功耗。例如…...
拥抱成长型思维:解锁持续进步的人生密码
我强烈推荐4本可以改变命运的经典著作: 《寿康宝鉴》在线阅读白话文《欲海回狂》在线阅读白话文《阴律无情》在线阅读白话文《了凡四训》在线阅读白话文 一、什么是成长型思维? 成长型思维(Growth Mindset)由斯坦福大学心理学家卡…...
Ubuntu上查看GPU使用情况并释放内存
先用nvidia-smi查看GPU当前使用情况 再用fuser 命令查找对应显卡上占用 GPU 的进程 最后查到了用kill -9强制杀掉进程(PID)即可...
解决思科交换机无法访问局域网外设备
问题背景 有时,我们需要远程连接来管理一台思科交换机,例如使用SSH协议。然而交换机运作在链路层,这就需要交换机有一个网络层地址,来接纳基于IP协议的远程访问请求。于是,我们依靠设置一个带有IP地址的交换机虚拟接口…...
Unity Shader编程】之透明物体渲染
以下是针对您提出的关于 Unity Shader 渲染 Pass 的查看方法、多个 Pass 的影响、Pass 的含义,以及 Unity 渲染物体的流程和处理多个透明/半透明/不透明物体的详细解答。 1. Unity Shader 渲染 Pass 的查看方法 查看 Pass 的方法 通过 Shader 代码: 打开…...
fopen和open 等区别是什么?文件描述符与文件描述指针区别
FILE *fp fopen(path, "w"); int fd open(path,) 1.区别 函数定义所属库返回类型fopen高级文件操作函数,提供缓冲机制标准 C 库 (stdio.h)FILE*(文件指针)open低级文件操作函数,直接调用系统接口Unix/Linux 系统调用…...
什么是张量计算
以下是对张量计算的详细介绍,结合数学、物理学及计算机科学等多领域视角: 一、张量的基本定义与性质 1. 张量的数学定义 张量是向量空间及其对偶空间的笛卡尔积上的多重线性映射,可视为多维数组或几何对象。其核心特征在于: 坐…...
【1】Java 零基础入门学习(小白专用)
【1】Java 零基础入门学习 📚博客主页:代码探秘者 ✨专栏:《JavaSe从入门到精通》 其他更新ing… ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏作者水…...
[c语言日寄]枚举类型
【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…...
替代-UX设计师
初创公司如何在没有设计师的情况下 打造实用的用户体验 一个常见的捷径是使用预构建的组件库,如谷歌的 Material UI它们为你提供了构建块,但它们并没有为你考虑整个用户流程你仍然需要弄清楚所有这些是如何组合在一起的但是,很多时候&#x…...
【氧化镓】掺杂在β-Ga2O3材料中引入的深能级缺陷
1. 引言 1.1 β-Ga2O3材料的特性与应用前景 β-Ga2O3作为一种新型的宽禁带半导体材料,具有约4.6-4.8 eV的宽带隙、高击穿场强(约8 MV/cm)和优异的热稳定性,适用于高功率和射频电子器件。其独特的物理特性使其在高电压、高频率以及高功率应用场景中具有巨大的潜力。例如,…...
:ref 和 this.$refs 的区别及 $ 的作用
:ref 在 Vue 模板中,:ref 这种写法是使用了 Vue 的动态绑定语法(: 是 v-bind: 的缩写)。ref 是一个特殊的属性,用于给元素或组件注册引用信息。当你使用 :ref 时,通常是在动态地为元素或组件设置引用名称,…...
分库分表后,跨库查询和分布式事务解决方案
分库分表主要是为了解决单库单表的性能瓶颈,但拆分后数据分散在不同库和表中,这就导致了跨库查询和分布式事务的问题。 以下是实际项目中应对这些问题的核心策略与技术实现: 一、跨库查询解决方案 1. 全局表(广播表) 适用场景:基础数据表(如地区表、配置表)数据量小且…...
仅靠prompt,Agent难以自救
Alexander的观点很明确:未来 AI 智能体的发展方向还得是模型本身,而不是工作流(Work Flow)。还拿目前很火的 Manus 作为案例:他认为像 Manus 这样基于「预先编排好的提示词与工具路径」构成的工作流智能体,…...
android初学
Intent直译意图 显式意图:构造函数(实参为两个) (当前类对象 this,要跳转的.javaclass文件), 隐式意图:构造方法实参(填写一个)(需要在清单文件配置)系统自动匹配 点击事件: 注册设置点击监听器的常用三…...
IDEA修改默认作者名称
User: IDEA提示注释缺少author信息,但自动设置后,名称不是我想要的默认名称,应该如何修改IDEA里默认的作者名称? Kimi: 以下是几种修改IntelliJ IDEA中默认作者名称的方法: ### 方法一:修改File and Code …...
Playwright + MCP:用AI对话重新定义浏览器自动化,效率提升300%!
一、引言:自动化测试的“瓶颈”与MCP的革新 传统自动化测试依赖开发者手动编写脚本,不仅耗时且容易因页面动态变化失效。例如,一个简单的登录流程可能需要开发者手动定位元素、处理等待逻辑,甚至反复调试超时问题。而MCP…...
lodash 学习笔记/使用心得
lodash 学习笔记/使用心得 简单记一下 lodash 的一点学习笔记使用心得,最近也是打算清理一下所有的 dead code,然后发现我们用了好多的 lodash 方法。对比了之前的写法,重新看了一下官方文档,再自己重新动手写了点 util 之后发现…...
计算机操作系统(五) 前趋图和程序执行与进程的描述(附带图谱表格更好对比理解))
计算机操作系统(五) 前趋图和程序执行与进程的描述 前言一、前趋图和程序执行1.1前趋图1.2程序的顺序执行1.3程序的并发执行 二、进程的描述2.1进程的定义与特征2.2进程的基本状态与转换2.3挂起的操作系统和进程的转换2.4进程管理中的数据结构 总结&…...
“统计视角看世界”专栏阅读引导
根据文章主题和逻辑关系,我为您设计以下阅读引导方案: #mermaid-svg-xOnE2zTW20jz5myv {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-xOnE2zTW20jz5myv .error-icon{fill:#552222;}#mermaid…...
C/C++静态库的理解和制作
1.什么是库 库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。 本质上来说库是⼀种可执行代码的二进制形式,可以被操作系统…...
【redis】主从复制:单点问题、配置详解、特点详解
文章目录 单点问题什么是主从复制主从模式能解决的问题并发量有限可用性问题 配置建立复制通过配置文件来指定端口配置主从查看集群结构 断开复制 特点安全性只读传输延迟 单点问题 分布式系统中,涉及到一个非常关键的问题:单点问题 某个服务器程序&…...
