首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【MySQL篇】MySQL内置函数

【MySQL篇】MySQL内置函数

作者头像
用户11719958
发布2025-12-30 11:51:39
发布2025-12-30 11:51:39
2390
举报

1,日期函数

日期类型在之前文章【数据类型】中有描述

传送门:【MySQL篇】数据类型_mysql 数据类型-CSDN博客

函数名称

描述

current_date()

当前日期

current_time()

当前时间

current_timestamp()

当前时间戳

date(datetime)

返回datetime参数的部分日期

date_add(date,interval d_value_type)

在date中添加日期或时间,interval关键字后可以是:year,mintue,second,day

date_sub(date,interval d_value_type)

在date中减去日期或时间,interval关键字后可以是: year,minute,second,day

datediff(date1,date2)

两个日期的差,单位是天

now()

当前日期时间

  • 获得当前日期(年月日)
  • 获得当前日期(时分秒)
  • 获取当前日期
  • 获得时间戳
  • 在日期的基础上加上日期
  • 在日期的基础上减去时间
  • 计算两个日期之间相差多少天

案例1:创建一张生日表,记录生日

mysql> create table tmp( -> id int primary key auto_increment, -> birthday date);

  • 添加当前日期

mysql> insert into tmp (birthday) values (current_date());

  • 案例2:创建一张留言表

mysql> create table msg( -> id int primary key auto_increment, -> content varchar(30) not null, -> sendtime datetime);

  • 插入数据

mysql> insert into msg (content,sendtime) values ('hello1',now()); mysql> insert into msg (content,sendtime) values ('hello2',now());

  • 显示所有留言信息,只显示日期,不显示时间

mysql> select content,date(sendtime) from msg;

  • 查询2分钟内发布的留言

mysql> select * from msg where date_add(sendtime,interval 2 minute)>now();

2,字符串函数

charset(str)

返回str的字符集

concat(string,...)

连接字符串

instr(str,substring)

返回substring在str中出现的位置,没有返回0

ucase(string2)

转换成大写

lcase(string2)

转换成小写

left(string2,length)

从string2的左边起,取length个字符

length(string)

string的长度,单位是字节

replace(str,search_str,raplace_str)

在str中用replace_str替换search_str

strcmp(string1,string2)

比较两字符串的大小

substring(string,postion,length)

从string的postion开始,读取length个字符

ltrim(string) rtrim(string) trim(string)

去除前空格或后空格(见示例)

示例:

  • 查看字符的编码集
  • 连接字符串
  • 判断一个字符是否在另一个字符串中出现
  • 大小写转换
  • left,right函数
  • length求字符串长度,单位是字节 (utf8下一个整数3个字节)

案例:

  • 首先创建一张员工表
  • 插入数据
  • 获取emp表的ename列的字符集 (如果表中有些部分出现乱码,可以查看插入数据的编码和mysql的编码是否一致)

mysql> select charset(ename) from emp;

  • 将emp表中所有名字中有 S的替换成 '上海'

mysql> select ename,replace(ename,'S','上海') from emp;

  • 截取emp表中ename字段的第2到3个字符

mysql> select ename,substring(ename,2,2) from emp;

  • 以首字母小写的方式显示所有员工的姓名

mysql> select concat(lcase(substring(ename,1,1)),substring(ename,2)) from emp;

3,数学函数

函数名称

描述

abs(num)

绝对值函数

bin(decimal_number)

十进制转二进制

hex(decimal Number)

转换成十六进制

conv(number,form_case,to_base)

进制转换

ceiling(number)

向上取整

floor(number)

向下取整

format(number,decimal_places)

格式化,保留小数位数

rand()

返回随机浮点数,范围【0.0,1.0)

mod(number,denominator)

取模,求余数

示例:

  • 绝对值
  • 向上取整
  • 向下取整
  • 保留两位小数位数 (四舍五入)
  • 十进制转化成二进制
  • 把一个数字从一个进制转化成另一个进制
  • 转化成十六进制
  • 产生随机数

4,其他函数

  • user查询当前用户

mysql> select user();

  • md5(str)对一个字符串进行md5摘要,摘要后的得到一个32位字符串 ,可以保证用户信息的安全性

mysql> create table user( -> id int primary key auto_increment, -> name varchar(20), -> password char(32) not null);

插入数据

mysql> insert into user (name,password) values ('张三',md5('12345')); mysql> insert into user (name,password) values ('李四',md5('21090'));

  • database(),显示当前正在使用的数据库

mysql> select database();

  • ifnull(val1,val2),如果val为null,返回val2。否则返回val1

实战OJ

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

代码语言:javascript
复制
select id,length(string)-length(replace(string,',','')) cnt from strings;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1,日期函数
  • 2,字符串函数
  • 3,数学函数
  • 4,其他函数
  • 实战OJ
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档