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

七.MySQL内置函数

1.日期函数

MySQL 日期与时间函数对照表
函数名称描述
current_date()当前日期(格式:YYYY-MM-DD)
current_time()当前时间(格式:HH:MM:SS)
current_timestamp()当前日期和时间(等同于 now()
now()当前日期和时间
date(datetime)提取 datetime 值中的日期部分
date_add(date, interval N unit)给日期加上指定时间间隔(如天、年等)
date_sub(date, interval N unit)从日期中减去指定时间间隔
datediff(date1, date2)计算两个日期之间的差值(以天为单位)

date_adddate_sub 的常用单位包括:

  • year

  • month

  • day

  • hour

  • minute

  • second

查询插入3分钟内插入的数据  

select * from t_time where date_add(createtime,interval 3 minute)>now();

2.字符串函数

mysql 常用字符串函数总表
函数含义或功能示例
charset(str)返回字符串的字符集select charset(ename) from emp;
concat(str1, str2, …)拼接字符串select concat(name, '是学生') from student;
instr(str, substr)查找子串出现位置(从 1 开始,找不到返回 0)select instr('mysql', 'sql');3
ucase(str) / upper(str)转大写select ucase('hello');'HELLO'
lcase(str) / lower(str)转小写select lcase('HELLO');'hello'
left(str, n)从左边截取 n 个字符select left('hello', 2);'he'
right(str, n)从右边截取 n 个字符select right('hello', 2);'lo'
length(str)返回 字节长度(视字符集,中文占多字节)select length('中国');(utf8下)→ 6
replace(str, from_str, to_str)替换字符串中的部分select replace(ename, 's', '上海') from emp; s全部换上海
strcmp(str1, str2)比较两个字符串大小(按 ascii 排序)返回值 =0 左>右1 左<右-1select strcmp('abc', 'bcd');-1 
substring(str, pos, len)从 str 的第pos个字符起,取 len 个字符select substring(ename, 2, 2) from emp;
ltrim(str)去除左侧空格select ltrim(' hello');'hello'
rtrim(str)去除右侧空格select rtrim('hello ');'hello'
trim(str)去除左右两端空格select trim(' hello ');'hello'

1.charset 获取表中列的字符集

2.concat 将一行信息输出成一行字符串

3.length 显示字段占用的字节数

4.replace 替换字符串中的部分字符

5.substring截取字符串中的部分字符

substring(str, pos, len) pos代表第几个字符  不是下标 

从第0个字符开始 非法

6.隐藏名字

replace() 把名字替换为*

7.以首字母小写方式显示员工姓名

1.substring 把首字母 和 其它字母分开

2.lcase 把大写首字母改为小写

3.concat 拼接起来

3.数学函数

函数名功能说明示例语句示例结果
abs(number)绝对值函数select abs(-100.2);100.2
ceiling(number)向上取整select ceiling(23.04);24
floor(number)向下取整select floor(23.7);23
format(number, decimal_places)保留小数位(四舍五入)select format(12.3456, 2);'12.35'(字符串)
rand()生成 [0,1) 之间随机数select rand();0.73892(浮点)
mod(number, denominator)取模(求余)select mod(10, 3);1
bin(decimal_number)转为二进制select bin(10);'1010'
hex(decimal_number)转为十六进制select hex(255);'FF'
conv(number, from, to)进制转换select conv('A', 16, 10);'10'

rand()生成[0,1)之间是随机数,想生成其它范围的数字呢?

生成[a,b]的随机整数

floor(rand() * (b - a + 1)) + a

        eg.rand() [0,1) rand()*101 [0,101)

        0~100:select foolr(rand()*101) 向下取整 [0,1)=0 [1,2)=1 ... [99,100)=99 [100,101)=100

可以用ceiling向上取整吗?ceiling(rand()*100) 

能出现[0,100]的数字,但只有当rand()==0时才为0,0~100的整数出现的概率不均。

1.abs()绝对值

2.ceiling()向上取整 

往大的取

3.floor()向下取整

4.hex()转16进制

5.bin()转二进制

6.conv(值,原进制,目标进制)

4.其它函数

函数名作用说明示例返回值示例
user()返回当前连接的 MySQL 用户select user();'root@localhost'
database()返回当前使用中的数据库名称select database();'test'(若未选中数据库则返回 null)
md5(str)对字符串进行 MD5 摘要加密(32位小写十六进制)select md5('admin');'21232f297a57a5a743894a0e4a801fc3'
password(str)MySQL 内部使用的加密函数(主要用于授权验证)select password('root');'*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B'
ifnull(val1, val2)如果 val1 为 null,返回 val2;否则返回 val1select ifnull(null, '123');'123'
select ifnull('abc', '123');'abc'
函数作用就像是...你能干嘛用?能不能用在业务里推荐吗?小白级解释
md5()把原文压成一段“身份证号”加密密码、接口签名、文件校验、隐藏手机号等✅ 可以✅ 推荐给一段内容打一串 唯一指纹
password()MySQL 系统内部自己用的小保险箱钥匙MySQL 系统登录密码用,不给你看、不给你用❌ 不行❌ 不推荐只给 MySQL 自己看的加密结果

md5()把里面字符串加密成固定长度32位的新字符串,这个新字符串不能还原成原字符串,但只要原字符串相同加密后的新字符串也相同,用来隐藏原始数据 校验密码是否正确。

ifnull(val1,val2) 就相当于 val1==null?val2:val1;

练习

查找字符串中逗号出现的次数_牛客题霸_牛客网

把字符串的 , 改为空,用原字符串长度 - 去掉 ,字符串的长度

http://www.xdnf.cn/news/758773.html

相关文章:

  • Practice 2025.6.1—— 二叉树进阶面试题(2)
  • 研读论文《Attention Is All You Need》(13)
  • 【笔记】MSYS2 安装 Python 构建依赖记录Cython + Ninja + Meson + meson-python
  • 七、物理.
  • Flickr30k_Entities数据集
  • 【项目记录】登录认证(下)
  • 6.运算放大器—电源抑制比(五)
  • 2002-2022年 城市市政公用设施水平、环境、绿地等数据-社科经管实证数据
  • 殷咏梅教授:OptiTROP-Breast05亮相2025 ASCO,中国原创TROP2 ADC为mTNBC一线治疗带来新希望
  • 2024年数维杯国际大学生数学建模挑战赛B题空间变量协同估计方法研究解题全过程论文及程序
  • ZIP Cracker版本更新了
  • java中IO流分为几种
  • 深入Java NIO:构建高性能网络应用
  • AAA基础配置
  • LeetCode - 234. 回文链表
  • Roller: 抽奖系统测试的幕后剧本-测试报告
  • Spring AI Image Model、TTS,RAG
  • PINN模型相关原理
  • 【CBAP50技术手册】#32 Organizational Modelling(组织建模):BA(业务分析师)的“变革导航图”
  • 安卓jetpack compose学习笔记-UI基础学习
  • 机电的焊接技术
  • 《中国棒垒球》注册青少年运动员需要什么条件·棒球1号位
  • 【Go-6】数据结构与集合
  • [网页五子棋][对战模块]处理连接成功,通知玩家就绪,逻辑问题(线程安全,先手判定错误)
  • Spring Boot,注解,@ComponentScan
  • linux驱动开发(1)-内核模块
  • rl_sar功能包详解
  • pyqt5笔记20250601
  • gitflow
  • 《Pytorch深度学习实践》ch2-梯度下降算法