#加/解密函数 1.加密函数 格式:PASSWORD(str) 作用:从原明文密码str计算并返回加密后的密码字符串,参数为NULL时,返回NULL,加密为单向不可逆 eg. mysql> select password('newpwd'); +-------------------------------------------+ | password('newpwd') | +-------------------------------------------+ | *1FA85AA204CC12B39B20E8F1E839D11B3F9E6AA4 | +-------------------------------------------+ 格式:md5(str) 作用:为字符串算出一个md5 128bit校验和,返回32位16进制数字的二进制字符串形式返回,参数为NULL,返回NULL eg. mysql> select md5('mypwd'); +----------------------------------+ | md5('mypwd') | +----------------------------------+ | 318bcb4be908d0da6448a0db76908d78 | +----------------------------------+ 格式:ENCODE(str,pswd_str) 作用:使用pswd_str作为密码,加密str,是一个和str长度相同的二进制字符串,使用DECODE()解密结果 eg. mysql> select encode('newpwd','cry'),length(encode('newpwd','cry')); +------------------------+--------------------------------+ | encode('newpwd','cry') | length(encode('newpwd','cry')) | +------------------------+--------------------------------+ | | 6 | +------------------------+--------------------------------+ 2.解密函数 格式:DECODE(crypt_str,pswd_str) 作用:使用pswd_str作为密码,解密加密字符串crypt_str,crypt_str为由ENCODE()返回的字符串 eg. mysql> select decode(encode('newpwd','cry'),'cry'); +--------------------------------------+ | decode(encode('newpwd','cry'),'cry') | +--------------------------------------+ | newpwd | +--------------------------------------+ 3.格式化函数 格式:format(x,n) 作用:将数字x格式化,并以四舍五入的方式保留小数点后n位,结果以字符串形式返回,若n==0,则返回结果函数不含小数部分 eg. mysql> select format(1.34356,4),format(1.34354,4),format(1.32,4),format(1.32,0); +-------------------+-------------------+----------------+----------------+ | format(1.34356,4) | format(1.34354,4) | format(1.32,4) | format(1.32,0) | +-------------------+-------------------+----------------+----------------+ | 1.3436 | 1.3435 | 1.3200 | 1 | +-------------------+-------------------+----------------+----------------+ 4.进制转换函数 格式:conv(N,from_base,to_base) 作用:返回数值N的字符串表示,有from_base进制转化为to_base进制,任意一个参数为NULL,返回NULL。 eg. mysql> select conv('a',16,2),conv(1,10,2),conv(10,10,8),conv(10,16,8); +----------------+--------------+---------------+---------------+ | conv('a',16,2) | conv(1,10,2) | conv(10,10,8) | conv(10,16,8) | +----------------+--------------+---------------+---------------+ | 1010 | 1 | 12 | 20 | +----------------+--------------+---------------+---------------+ 5.IP地址与数字相互转换的函数 格式:INET_ATON(expr) 作用:给出一个作为字符串的网络地址的点地址表示,返回一个代表地址数值的整数,计算规则192*256^3+168*256^2+0*256+0 eg. mysql> select inet_aton('192.168.0.0'); +--------------------------+ | inet_aton('192.168.0.0') | +--------------------------+ | 3232235520 | +--------------------------+ 格式:INET_NTOA(expr) 作用:给定一个数字网络地址,返回作为字符串的改地址的点地址表示 eg. mysql> select inet_ntoa(3232235520); +-----------------------+ | inet_ntoa(3232235520) | +-----------------------+ | 192.168.0.0 | +-----------------------+ 6.加锁和解锁函数 格式:GET_LOCK(str,timeout) 作用:使用str给定的名字得到一个锁,持续时间timeout秒。成功返回1,超时返回0,错误返回NULL 格式:RELEASE_LOCK(str) 作用:解开被get_lock()获取,用str命名的锁,若锁被解开返回1,线程尚未创建锁返回0(未解开),锁不存在,返回NULL 格式:IS_FREE_LOCK(str) 作用:检查名为str的锁是否可以使用,可以使用返回1,正在被使用,返回0,出现错误返回NULL 格式:IS_USED_LOCK(str) 作用:检查名为str的锁是否正在使用,正在使用返回使用该锁的客户端的连接表示符(connection ID),否则返回NULL。 eg. mysql> mysql> select get_lock('lock',10),IS_USED_LOCK('lock'),is_free_lock('lock'),release_lock('lock'),is_free_lock('lock'); +---------------------+----------------------+----------------------+----------------------+----------------------+ | get_lock('lock',10) | IS_USED_LOCK('lock') | is_free_lock('lock') | release_lock('lock') | is_free_lock('lock') | +---------------------+----------------------+----------------------+----------------------+----------------------+ | 1 | 3 | 0 | 1 | 1 | +---------------------+----------------------+----------------------+----------------------+----------------------+ 7.重复执行指定操作 格式:BENCHMARK(count,expr) 作用:重复count次执行表达式expr,用于计算mysql处理表达式速度或者可以在mysql客户端内部报告语句执行时间 eg.执行一次和500000次时间对比 mysql> select password('newpd'); +-------------------------------------------+ | password('newpd') | +-------------------------------------------+ | *53EF09F01785E18B395ED7489D9A37A661B03196 | +-------------------------------------------+ 1 row in set, 1 warning (0.00 sec) mysql> select benchmark(500000,password('newwd')); +-------------------------------------+ | benchmark(500000,password('newwd')) | +-------------------------------------+ | 0 | +-------------------------------------+ 1 row in set, 1 warning (0.11 sec) 8.改变字符集函数 格式:convert(... using ...) 作用:带有using的convert()函数被用来在不同的字符集之间转化数据 eg. mysql> select charset('string'),charset(convert('string' using latin1)); +-------------------+-----------------------------------------+ | charset('string') | charset(convert('string' using latin1)) | +-------------------+-----------------------------------------+ | utf8 | latin1 | +-------------------+-----------------------------------------+ 9.改变数据类型的函数 格式:cast(x, as type)或者convert(x,type) 作用:将一个类型的值转换为另一个类型的值,可转换的type有:BINARY、CHAR(n)、DATE、TIME、DATETIME、DECIMAL、SIGNED、UNSIGNED eg. mysql> select cast(100 as char(2)),convert('2010-10-01 12:12:12',time); +----------------------+-------------------------------------+ | cast(100 as char(2)) | convert('2010-10-01 12:12:12',time) | +----------------------+-------------------------------------+ | 10 | 12:12:12 | +----------------------+-------------------------------------+
Mysql数据库函数(五)加/解密及其它函数
猜你喜欢
转载自blog.csdn.net/poetry_and_distance/article/details/79794647
今日推荐
周排行