MySQL系统函数
加密解密函数
加密与解密函数主要用于对数据库中的数据济宁加密和解密处理,以防止数据被他人窃取。保证数据安全性非常有用。
函数 | 用法 |
---|---|
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'))