MySQL学习-函数(十一)

114 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情

前言

上篇我们又学习了一部分MySQL中的函数。有兴趣的小伙伴可以阅读(# MySQL学习-函数(十))。
下面继续学习MySQL中的函数。

其他函数

MySQL中有些函数无法对其进行具体的分类,但是这些函数在MySQL的开发和运维过程中也是不容忽视的。

函数用法
FORMAT(value,n)返回对数字value进行格式化后的结果数据。n表示四舍五入后保留到小数点后n位
CONV(value,from,to)将value的值进行不同进制之间的转换
INET_ATON(ipvalue)将以点分隔的IP地址转化为一个数字
INET_NTOA(value)将数字形式的IP地址转化为以点分隔的IP地址
BENCHMARK(n,expr)将表达式expr重复执行n次。用于测试MySQL处理expr表达式所耗费的时间
CONVERT(value USING char_code)将value所使用的字符编码修改为char_code

示例一

SELECT FORMAT(123.123, 2), FORMAT(123.123, 0), FORMAT(123.123, -2)
FROM DUAL
FORMAT(123.123, 2)FORMAT(123.123, 0)FORMAT(123.123, -2)
123.12123123

通过结果可以看出FORMAT函数,保留了四舍五入后的2位小数。
如果n的值小于或者等于0,则只保留整数部分。

示例二

SELECT CONV(16, 10, 2), CONV(8888, 10, 16), CONV(NULL, 10, 2)
FROM DUAL
CONV(16, 10, 2)CONV(8888, 10, 16)CONV(NULL, 10, 2)
100002288NULL

转换NULL时,结果还是NULL。

示例三

SELECT INET_ATON('192.168.1.100')
FROM DUAL
INET_ATON('192.168.1.100')
3232235876

INET_ATON函数将ip地址转化为了一个整数。
转化公式为:以'192.168.1.100'为例,192乘以256的3次方,加上168乘以256的2次方,加上1乘以256,再加上100.可以得出值为3232235876。

示例四

SELECT INET_NTOA(3232235876)
FROM DUAL
INET_NTOA(3232235876)
192.168.1.100

INET_NTOA函数将一个整数转化为了ip地址。

示例五

SELECT BENCHMARK(10000000, MD5('mysql'))
FROM DUAL
BENCHMARK(10000000, MD5('mysql'))
0

通过运行时间,可以看出表达式运行多长时间。

示例六

SELECT CHARSET('bingdundun'), CHARSET(CONVERT('bingdundun' USING 'gbk'))
FROM DUAL
CHARSET('bingdundun')CHARSET(CONVERT('bingdundun' USING 'gbk'))
utf8gbk

利用CHARSET函数,可以很方便的验证CONVERT函数是否能转换成功。

今天就把MySQL的单行函数学习完了,明天做一些练习巩固一下知识点。