MySQL函数体系除了前面介绍的日期函数(日期函数),字符串函数(字符串函数),数学函数(数学函数)之外,还有一些常用的函数,在某些场合还是很有用的。
1. user()
user()的功能是查看当前用户名,使用如下:
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
2. database()
database()的功能是显示当前所使用的数据库名。
mysql> select database();
+------------+
| database() |
+------------+
| test |
+------------+
1 row in set (0.00 sec)
3. md5()
md5(str)可以对传入的字符串进行,d5加密,并返回加密后得到的32位字符串。
严格来讲,mad5()是一个摘要函数,因为通过md5转换只能进行加密不能解密,而加密函数要能加密也能解密,所以它只是一个摘要。
晚上有所谓的md5解密,但那是使用打表的方式将常用的字符串和相应的md5串存储下来,进行反向查询,并不能实现真正的解密。
我们通常使用md5进行信息传输前后的完整性判断,使用方法如下:
mysql> select md5('hello world!');
+----------------------------------+
| md5('hello world!') |
+----------------------------------+
| fc3ff98e8c6a0d3087d515c0473f8677 |
+----------------------------------+
1 row in set (0.02 sec)
4. password()
password()是一个真正的加密函数,不像md5(),password()加密之后的内容可以解密出来。
mysql用户登录时的验证就使用了password(),其将所输入密码转换之后与存入的密码的加密码进行比较验证用户。
5. ifnull(val_1, val_2)
如果val_1为null,则返回val_2,否则返回val_1的值,本质上来说就是一个三目运算符,如下:
va11==null ? val_2 : val_1
使用如下:
mysql> select ifnull(null, 1);
+-----------------+
| ifnull(null, 1) |
+-----------------+
| 1 |
+-----------------+
1 row in set (0.00 sec)
mysql> select ifnull(2, 1);
+--------------+
| ifnull(2, 1) |
+--------------+
| 2 |
+--------------+
1 row in set (0.00 sec)