MySQL系统函数

数据库 MySQL 2022年05月24日 16:44 708  

加密解密函数

加密与解密函数主要用于对数据库中的数据济宁加密和解密处理,以防止数据被他人窃取。保证数据安全性非常有用。

函数 用法
PASSWORD(str) 返回字符串str的加密版本,41位长度的字符串。加密结果不可逆,常用语用户密码加密 MySQL 8.0中弃用
MD5(str) 返回字符串str的md5加密后的值,也是一种加密方式。若参数为NULL,则会返回NULL
SHA(str) 从原明文密码str计算并返回加密后的密码字符串,当参数为NULL时,返回NULL。SHA加密算法比MD5更安全
ENCODE(value,password_seed) 返回使用password_seed作为加密秘钥加密value
DECODE(value,password_seed) 返回使用password_seed作为加密秘钥解密value

示例:

  • SELECT MD5('mysql'),SHA('mysql');
  • +----------------------------------+------------------------------------------+
  • | MD5('mysql') | SHA('mysql') |
  • +----------------------------------+------------------------------------------+
  • | 81c3b080dad537de7e10e0987a4bf52e | f460c882a18c1304d88854e902e11b85d71e7e1b |
  • +----------------------------------+------------------------------------------+
  • 1 row in set (0.02 sec)
  • SELECT ENCODE('GuoyhMysql','mysql'),DECODE(ENCODE('GuoyhMysql','mysql'),'mysql') FROM DUAL;

MySQL信息函数

函数 用法
VERSION() 返回当前MySQL的版本号
CONNECTION_ID() 返回当前MySQL服务器的链接数
DATABASE(),SCHEMA() 返回MySQL命令行当前所在的数据库
USER(),CURRENT_USER(),SYSTEM_USER(),SESSION_USER() 返回当前连接MySQL的用户名,返回结果格式为“主机名@用户名”
CHARSET(value) 返回字符串value自变量的字符集
COLLATON(value) 返回字符串value的比较规则

示例:

  • SELECT DATABASE();
  • +------------+
  • | DATABASE() |
  • +------------+
  • | test |
  • +------------+
  • 1 row in set (0.00 sec)

其它函数

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

示例:

  • /*如果n的值小于或等于0,则只保留正数部分*/
  • SELECT FORMAT(123.123,2),FORMAT(123.523,0),FORMAT(123.123,-2);
  • +-------------------+-------------------+--------------------+
  • | FORMAT(123.123,2) | FORMAT(123.523,0) | FORMAT(123.123,-2) |
  • +-------------------+-------------------+--------------------+
  • | 123.12 | 124 | 123 |
  • +-------------------+-------------------+--------------------+
  • 1 row in set (0.02 sec)
  • /*以192.168.1.100为例 计算方式 192乘以256的3次方,加上168乘以256的2次方,加上1乘以256,再加100*/
  • SELECT INET_ATON('192.168.1.100'),INET_NTOA(3232235876)
  • +----------------------------+-----------------------+
  • | INET_ATON('192.168.1.100') | INET_NTOA(3232235876) |
  • +----------------------------+-----------------------+
  • | 3232235876 | 192.168.1.100 |
  • +----------------------------+-----------------------+
  • 1 row in set (0.00 sec)
  • SELECT BENCHMARK(10000,MD5('mysql'));
  • SELECT CHARSET('MYSQL'),CHARSET(CONVERT('MYSQL' USING 'GB2312'))