当前位置: 首页 > news >正文

MySQL笔记---内置函数

MySQL 内置函数是预先定义在数据库中的函数,可直接用于数据处理、计算或逻辑判断,极大简化了 SQL 语句的编写。

1. 字符串函数

用于处理字符串类型数据,常见功能包括拼接、截取、转换等。

函数功能描述
CONCAT(s1, s2, ...)连接多个字符串,若有 NULL 则结果为 NULL
CONCAT_WS(sep, s1, s2, ...)用分隔符 sep 连接字符串(忽略 NULL)
SUBSTRING(str, pos, len)从 str 的 pos 位置(从 1 开始)截取长度为 len 的子串
LENGTH(str)返回字符串的字节长度(受字符集影响,如 UTF8 中汉字占 3 字节)
CHAR_LENGTH(str)返回字符串的字符个数(与字符集无关)
UPPER(str) / LOWER(str)转换为大写 / 小写
TRIM(str)去除字符串首尾空格(LTRIM 去左空格,RTRIM 去右空格)
REPLACE(str, old, new)将 str 中所有 old 替换为 new

2. 数值函数

用于数值计算,如取整、求余、四舍五入等。

函数功能描述
ABS(n)返回 n 的绝对值
CEIL(n) / FLOOR(n)向上取整 / 向下取整(返回整数)
ROUND(n, d)对 n 四舍五入,保留 d 位小数(d 默认为 0)
MOD(n, m)求 n 除以 m 的余数(同 n % m)
RAND()生成 0~1 之间的随机浮点数(乘以N,则得到0到N之间的随机数)

3. 日期时间函数

函数功能描述
NOW() / SYSDATE()返回当前日期时间(NOW() 取语句开始时间,SYSDATE() 取函数执行时间)
CURDATE() / CURRENT_DATE()返回当前日期(仅日期部分)
CURTIME() / CURRENT_TIME()返回当前时间(仅时间部分)
YEAR(date) / MONTH(date) / DAY(date)提取日期中的年 / 月 / 日
DATEDIFF(date1, date2)计算 date1 - date2 的天数差(结果可为负数)
TIMESTAMPDIFF(unit, start, end)按 unit(如 HOUR、MINUTE)计算 end - start 的差值
DATE_ADD(date, INTERVAL expr unit)给日期添加时间间隔(DATE_SUB 为减去)

4. 聚合函数

用于对一组数据进行统计计算(常与 GROUP BY 配合使用)。

函数功能描述
COUNT(*)统计行数(包含 NULL)
COUNT(列名)统计指定列非 NULL 的行数
SUM(列名)计算指定列的总和(仅数值型)
AVG(列名)计算指定列的平均值
MAX(列名)取指定列的最大值
MIN(列名)取指定列的最小值

5. 控制流函数

用于逻辑判断,类似编程语言中的条件分支。

函数功能描述
IF(expr, v1, v2)若 expr 为真(非 0 非 NULL),返回 v1,否则返回 v2
IFNULL(v1, v2)若 v1 为 NULL,返回 v2,否则返回 v1(仅判断 NULL)
NULLIF(expr1, expr2)若 expr1 = expr2,返回 NULL,否则返回 expr1

6. 其他常用函数

函数功能描述
COALESCE(v1, v2, ...)返回第一个非 NULL 的值(若全为 NULL 则返回 NULL)
VERSION()返回当前 MySQL 版本号
USER()返回当前登录用户(格式:user@host)
DATABASE()返回当前会话中正在使用的数据库名称(若未选择数据库,则返回 NULL)
MD5(str)计算字符串 str 的 MD5 哈希值,返回一个 32 位的十六进制字符串(若 str 为 NULL,则返回 NULL)

MD5 是一种单向哈希算法,可将任意长度的字符串转换为固定长度的哈希值,常用于数据加密(如密码存储)或数据完整性校验。

MD5 哈希不可逆(无法从哈希值反推原始字符串),但由于其碰撞概率和安全性问题(可被暴力破解),不推荐用于现代密码存储,建议使用更安全的算法。

常用于校验数据是否被篡改(如文件校验)。

http://www.dtcms.com/a/422991.html

相关文章:

  • 紫外UV固化太阳光模拟器的原理
  • 南京网站建设哪家好简洁 网站模板
  • react 初体验
  • 南华 NHXJ-02 汽车悬架检验台:技术特性与实操应用指南
  • 鄂湘赣新能源汽车产业质量技术创新联合体成立大会暨汽车网络安全标准专题培训会在汉圆满召开
  • 物联网智能安防系统
  • 洗头竖鞋带名片改良授权做网站不贵高端产品网站建设
  • 软考 系统架构设计师系列知识点之杂项集萃(160)
  • 汕头网站建设推广电子商务网站流程图
  • Axure教程:用中继器制作高亮搜索效果
  • WSL2 子系统启用 SSH 并使用 MobaXterm 连接
  • Oracle EBS ERP之报表开发—嵌入Web中的报表预览、报表打印
  • 网站上传可以通过wordpress作者 页面
  • 【信号处理基础】傅立叶级数、傅立叶变换、拉普拉斯变换与z变换
  • powershell脚本文件输出中文乱码解决办法
  • 二叉树的后序遍历【非递归版】
  • 一款专门为 WPF 打造的开源 Office 风格用户界面控件库
  • 【Java并发】揭秘Lock体系 -- 深入理解ReentrantLock
  • 数据可视化图表之——气泡图
  • 网站的搭建流程黑科技软件网站
  • 【征文计划】从掌心到像素:深度解析Rokid UXR 2.0的手势识别与自定义交互实战
  • 零知IDE——STM32F407VET6与GP2Y1014AU的粉尘监测系统实现
  • 网站建设怎么创业网站正建设中
  • 网站建站哪个好宁波建设局网站首页
  • Day31_【 NLP _1.文本预处理 _(3)文本数据分析】
  • 金融/财务图表的强大可视化引擎——Highcharts Stock
  • 如何将照片从Mac传输到安卓设备
  • 第四部分:VTK常用类详解(第112章 vtkGlyph2D 2D符号化类)
  • 如何将三星手机的照片传输到Mac——6种可行的方法
  • 《系统与软件工程功能规模测量IFPUG方法》(GB/T42449-2023)标准解读