MySQL内置函数


前言


一、MySQL内置函数

1、日期函数

在这里插入图片描述
*current_函数使用
在这里插入图片描述
date函数使用
会返回参数的日期部分。
在这里插入图片描述

date_add和date_sub使用
我们看到可以在内置函数中再次调用内置函数。
在这里插入图片描述
在这里插入图片描述
datediff函数
在这里插入图片描述

创建一个记录生日的表
下面我们创建一个表用来记录用户的生日。我们将birthday设为date日期类型。当我们插入数据时,我们看到正常的日期可以插入进行。并且now()函数和current_timerstamp()函数返回的日期时间类型也可以插入进行。但是为什么current_time()函数返回的时间类型也能插入进去呢?而且也得到了正确的日期。这是因为这些函数返回的其实都是日期+时间的类型,只不过这些函数规定了只能显示其中的日期或时间的部分。不过我们在写时还是要规范一点比较好,即把这些函数都放在date函数中进行转换为日期类型。
在这里插入图片描述

创建一个留言表
我们先创建一个记录留言的表。
在这里插入图片描述
然后我们向表中插入数据,可以看到表中记录了留言时的具体时间。
在这里插入图片描述
显示所有留言信息,发布日期只显示日期,不用显示时间
我们可以通过调用date函数来使sendtime只显示日期。
在这里插入图片描述

请查询在2分钟内发布的帖子
我们可以通过下面的两种方式来得到2分钟内发布的新留言。
在这里插入图片描述

2、字符串函数

在这里插入图片描述
charset函数和concat函数
charset函数可以返回字符串的字符集。
concat函数可以连接字符串,而且参数可以为任意多个字符串。
在这里插入图片描述

instr函数
instr函数为查找子串函数,会从第一个字符串参数中查找第二个字符串参数。如果找到就返回子串首字符的下标,注意这个下标从1开始。如果没找到就返回0。
在这里插入图片描述
ucase函数和lcase函数
ucase函数会将字符串参数中的小写字母全部转变为大写字母。
lcase函数会将字符串参数中的大写字母全部转变为小写字母。
在这里插入图片描述

left函数和right函数
left函数会从字符串参数的左边开始取length个字符。而right函数会从字符串参数的右边开始取length个字符。
在这里插入图片描述
length函数
length函数会计算字符串参数的长度,需要注意的是length函数的单位为字节,即如果是在utf8字符集下,一个汉字占3个字节,一个字符占1个字节。而要是在gbk字符集下,一个汉字占2个字节。
在这里插入图片描述

获取emp表的ename列的字符集
我们看到整数和浮点数为二进制形式,所以未binary。
在这里插入图片描述
要求显示student表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”
在这里插入图片描述

求学生表中学生姓名占用的字节数
因为math为float类型,所以占用2字节。
注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数算作一个字节,中文表示多个字节数(与字符集编码有关)
在这里插入图片描述

将EMP表中所有名字中有S的替换成’上海’
replace函数可以将字符串参数中的子串替换为另一个字符串。
在这里插入图片描述

截取EMP表中ename字段的第二个到第三个字符
substring(str,position,length)函数会从str字符串的position位置开始,取length个字符。如果不给length,那么就表示从position位置开始,取所有字符。
在这里插入图片描述

以首字母小写的方式显示所有员工的姓名
在这里插入图片描述

ltrim()函数和trim()函数和rtrim()函数
ltrim函数会去除字符串参数左边的空格。
rtrim函数会去除字符串参数右边的空格。
trim函数会去除字符串参数两边的空格。
但是这三个函数都不会去除字符串参数中间的空格。
在这里插入图片描述

3、数学函数

在这里插入图片描述
abs函数
在这里插入图片描述

bin函数
bin函数只能将整数转为二进制,如果是小数的话,那么将会只转整数部分。我们看到如果是负数的话,那么会将这个数的补码显示出来,而且如果是负数小数也会只转整数部分,并且显示补码。
在这里插入图片描述
hex函数
hex函数将十进制整数转为十六进制。
在这里插入图片描述

conv函数
conv(要转换的数字,原来的进制,要转换的进制)。
在这里插入图片描述

format函数
fromat函数可以格式化显示小数的小数位数。
在这里插入图片描述

mod函数
mod函数可以进行模运算。
在这里插入图片描述

rand函数
rand函数会随机返回[0.0,1.0)之间的浮点数。
在这里插入图片描述
如果我们想要通过rand函数生成0-100之间的整数,那么我们可以像下面这样。
在这里插入图片描述

ceiling函数和floor函数
我们需要先了解向上取整和向下取整。
在这里插入图片描述
ceiling函数为向上取整。
在这里插入图片描述
floor函数为向下取整。
在这里插入图片描述

4、其它函数

user() 函数查询当前用户
在这里插入图片描述

database()显示当前正在使用的数据库
在这里插入图片描述

md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串
我们在前面学习https协议时知道了密码在数据库中是不能明文保存的,因为会存在安全问题。所以在使用数据库保存密码时,可以将密码进行md5摘要,这样密码在数据库中就是以32位摘要字符串保存了。
我们看到当使用md5摘要后,李四的密码在数据库中就以32位摘要存放了。
在这里插入图片描述
不管字符串多长,md5都会形成32位摘要。并且相同字符串形成的摘要相同。
在这里插入图片描述
因为数据库中保存的是李四的密码经过md5函数后形成的摘要,所以当检验李四密码是否正确时,也需要对比md5形成的摘要。
在这里插入图片描述

password()函数,MySQL数据库使用该函数对用户加密
password()函数的作用和md5摘要的作用类似。都是将用户在数据库存的数据进行加密。

在这里插入图片描述

ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值
ifnull函数类似于三目运算符,即如果val1不为null,就返回val1的值,并且不会再判断val2。如果val1为null,那么就返回val2的值。
在这里插入图片描述

  • 15
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值