[MySQL]MySQL内置函数

[MySQL]MySQL内置函数

1. 日期函数

常用日期函数如下:

函数名称描述
current_date()获取当前日期
current_time()获取当前时间
current_timestamp()获取当前时间戳
now()获取当前日期时间
date(datetime)获取datetime参数的日期部分
date_add(date, interval d_value_type)在date中添加日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second
date_sub(date, interval d_value_type)在date中减去日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second
datediff(date1, date2)获取两个日期的差,单位是天

时间函数获取数据时是相同的,只是显示的部分不同。

current_date函数:

获取当前的日期(年,月,日)。

image-20230712172917517

current_time函数:

获取当前时间(时,分,秒)。

current_timestamp函数:

获取当前的时间戳。

image-20230712172935143

now函数:

获取当前日期时间。

image-20230712172940838

date函数:

获取datetime参数的日期部分。

image-20230712173219067

date_add函数:

在date中添加日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second。

image-20230712173957578

date_sub函数:

在date中减去日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second

image-20230712174232523

datediff函数:

获取两个日期的差,单位是天

image-20230712175018191

image-20230712175045681

时间函数综合案例

创建一个留言表,表中包含自增长的主键id、昵称、评论内容和评论时间。如下:

image-20230712181835590

向留言表中插入一条记录,其中用now函数来作为参数传入:

image-20230712182103116

可以借助date函数使得查询结果中只显示年、月、日:

image-20230712182212782

再在不同时间向表中插入一些记录:

image-20230712182552549

查询最近十分钟插入的记录:

image-20230712183447474

2. 字符串函数

常用字符串函数如下:

函数名称描述
charset(str)获取字符串使用的字符集
concat(str1, str2 [, …])获取连接后的字符串
instr(str, substr)获取substr在str中首次出现的位置,没有出现返回0
ucase(str)获取转换成大写后的字符串
lcase(str)获取转换成小写后的字符串
left(str, length)从字符串的左边开始,向后截取length个字符
length(str)获取字符串占用的字节数
replace(str, search_str, replace_str)将字符串中的search_str替换成replace_str
strcmp(str1, str2)逐字符比较两个字符串的大小
substring(str, position [, length])从字符串的position开始,向后截取length个字符
ltrim(str)、rtrim(str)、trim(str)去除字符串的前空格、后空格、前后空格

charset函数:

获取字符串使用的字符集。

image-20230712202442769

image-20230712202508960

concat函数:

获取连接后的字符串。

image-20230712201956568

image-20230712202038035

instr函数:

获取第二个参数在第一个参数中首次出现的位置,没有出现返回0。

image-20230712202329175

ucase函数:

获取转换成大写后的字符串。

image-20230712202620955

lcase函数:

获取转换成小写后的字符串。

image-20230712202626538

left函数:

从字符串的左边开始,向后截取length个字符。

image-20230712203110886

length函数:

获取字符串占用的字节数。

image-20230712203430302

strcmp函数:

逐字符比较两个字符串的大小。

类似于C语言中的strcmp函数:

image-20230712203803029

ltrim、rtrim、trim函数:

分别是去除字符串的前空格、后空格、前后空格。

image-20230712211934909

示例1 : 要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”。

image-20230712205633771

示例2: 求学生表中学生姓名占用的字节数。

image-20230712205827993

示例3: 将EMP表中所有名字中有S的替换成’上海’。

image-20230712210610904

示例4: 截取EMP表中ename字段的第二个到第三个字符。

image-20230712210913246

示例5: 以首字母小写的方式显示所有员工的姓名。

image-20230712211304597

3. 数学函数

常用数学函数如下:

函数名称描述
abs(number)绝对值函数
bin(decimal_number)十进制转换成二进制
hex(decimal_number)十进制转换成十六进制
conv(number, from_base, to_base)from_base进制转换成to_base进制
ceiling(number)向上取整
floor(number)向下取整
format(number, n)格式化,保留n位小数(四舍五入)
rand()生成随机浮点数,范围 [0.0, 1.0)
mod(number, denominator)求余

abs函数:

绝对值函数。

image-20230712212520592

bin函数:

十进制转换成二进制。

image-20230712212643669

hex函数:

十进制转换成十六进制。

image-20230712212707563

conv函数:

将第一个参数传入的数字从第二个参数进制转换成第三个参数进制。

image-20230712212755532

ceiling函数:

向上取整。

向上取整函数图像:

image-20230712213815643

image-20230712214122016

floor函数:

向下取整。

向下取整函数图像:

image-20230712214030195

image-20230712214131520

format函数:

格式化,保留n位小数(四舍五入)。

image-20230712212920247

rand函数:

生成随机数,范围 [0.0, 1.0)。

image-20230712213311555

mod函数:

取余运算。

image-20230712213042259

4. 其他函数

user函数

user() 查询当前用户。

image-20230712214528199

md5函数

md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串。

image-20230712215518690

  • 一般情况下公司内部数据库不会存储用户的明文密码,而会将用户密码形成摘要后存储对应的摘要,当用户登录账号时,将用户输入的的密码形成摘要后与数据库中存储的摘要做对比,如果对比成功则允许登录。
  • 这么做的好处主要有两个,第一个好处就是公司内部数据库中存储的不是用户的明文信息,就算用户信息泄露了也不会产生太大影响,第二个好处就是形成的摘要是定长的,这样有利于数据库表结构的设计。

database函数

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

image-20230712231010589

password函数

password()函数,MySQL数据库使用该函数对用户加密

image-20230712231032447

ifnull函数

ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值

image-20230712230749026

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好想写博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值