三. 加解密函数
三.一 password(str) 加密
是单向加密,且不可逆的。 常常用于MySQL服务器加密。
如果加密的字符串为null,那么将返回 空字符串.
select password('abc123'),password('两个蝴蝶飞'),password(null);
三.二 md5(str) MD5方式加密
采用Md5的方式进行加密
select md5('abc123'),md5('123456');
三.三 encode(str,ps_str) 固定字符串加密
以 ps_str 字符串为密钥,进行加密 str字符串。 可以让用户自定义加密方式。
select encode('abc123','A'),encode('abc123','ABC');
三.四 decode(str,ps_str) 固定字符串解密
以ps_str字符串为密钥,进行解密 str字符串。 与encode(str,ps_str)互为反函数
select decode(encode('abc123','A'),'A'),decode(encode('abc123','ABC'),'ABC');
可以正好返回以前要加密的字符串。
四. 其他函数
四.一 格式化数字 format(num,n)
格式化数字 num, 返回 n位小数, 四舍五入的方式进行获取。
select format(1234.234,2),format(1234.236,2),format(12.23423,1),format(123.22,0),format(123.23,-1);
发现, -1 值不起作用。 即 n>=0.
要想使 -1起作用,可以用 数学函数里面的 round(x,-1) 函数进行处理。
四.二 conv(num,from_base,to_base) 进制转换
其中,最小为二进制。
select conv('F',16,10),conv(7,10,2),conv(9,10,8),conv(1010,2,10);
四.三 bin(num) 将十进制数字转换成二进制
select bin(7),bin(4),bin(10);
四.四 oct(num) 将十进制数字转换成八进制
select oct(7),oct(10),oct(15);
四.五 hex(num) 将十进制数字转换成十六进制
select hex(9),hex(10),hex(15);
四.六 inet_aton(ip字符串) ip地址转换成数字
其中, inet 为internet 的简写。
aton 为 address to num.
select inet_aton('127.0.0.1'),inet_aton('10.1.1.121');
- 值分别为 2130706433,和 167838073
为 数字结果=第一个值256^3 +第二个值256^2 + 第三个值*256^1+ 第四个值。
四.七 inet_ntoa(数字) 将数字转换成ip地址
- 与 inet_aton(ip字符串) 互为反函数。
- ntoa 为 num to address.
select inet_ntoa(2130706433),inet_ntoa(167838073);
四.八 convert(str using 新的编码) 转换字符串的编码
可以改变字符串的编码
要借助一下 charset(str) 函数进行验证。
select charset('岳泽霖'),charset(convert('岳泽霖' using gbk)), charset(convert('岳泽霖' using latin1));
四.九 cast(x as type),convert(x,type) 改变数据类型
可以改变数据类型,但前堤是两个数据类型可以相互转换。
- 其中,转换成类型 type 可以的取值有:
type取值 |
表示意义 |
char(n) |
字符串型 |
date | 日期型 |
time |
时间型 |
datetime |
日期和时间型 |
decimal |
float浮点型 |
signed |
int类型 |