MD5函数

语法如下:

md5(str)

对字符串str使用md5算法进行加密,返回32位的16进制密文。通常用于对用户密码进行加密。

【示例】对字符串’sql.wang’进行加密:

mysql> select md5('sql.wang');
+----------------------------------+
| md5('sql.wang')                  |
+----------------------------------+
| 61d4ecbd57c6dfcef0ea53a3f696b1e4 |
+----------------------------------+
1 row in set (0.00 sec)

SHA函数

语法如下:

sha(str)

对字符串str使用sha算法进行加密,返回40位的16进制密文。

【示例】对字符串’sql.wang’进行加密:

mysql> select sha('sql.wang');
+------------------------------------------+
| sha('sql.wang')                          |
+------------------------------------------+
| d61ccc2d9697353daa2c2058ce02043e651d77bf |
+------------------------------------------+
1 row in set (0.00 sec)

SHA2函数

语法如下:

sha2(str,hash_length)

使用hash_length作为长度,对字符串str使用sha2算法进行加密。不同的hash_length,返回的密文长度不同。hash_length的取值有0、224、256(与0等价)、384、512。

【示例】对字符串’sql.wang’进行加密:

mysql> select sha2('sql.wang',0);
+------------------------------------------------------------------+
| sha2('sql.wang',0)                                               |
+------------------------------------------------------------------+
| 57647b3dcf8c15e6e565c489ade1531942a9c3701ac58c95ca4265a945ef4457 |
+------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select sha2('sql.wang',256);
+------------------------------------------------------------------+
| sha2('sql.wang',256)                                             |
+------------------------------------------------------------------+
| 57647b3dcf8c15e6e565c489ade1531942a9c3701ac58c95ca4265a945ef4457 |
+------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select sha2('sql.wang',512);
+----------------------------------------------------------------------------------------------------------------------------------+
| sha2('sql.wang',512)                                                                                                             |
+----------------------------------------------------------------------------------------------------------------------------------+
| 82c8fbc3cb740e147c32b4e5e50bd17730a36a6f4944140ada8adf3bede71e119ad6533a37a7f94955d731a538ddfdf600fc22669949996c2cc8456a31365626 |
+----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

GET_LOCK函数

语法如下:

get_lock(str,timeout)

设置一个名字为str的锁,超时时间为time秒。

【示例】设置一个名字为’sql.wang’的锁:

mysql> select get_lock('sql.wang',600);
+--------------------------+
| get_lock('sql.wang',600) |
+--------------------------+
|                        1 |
+--------------------------+
1 row in set (0.00 sec)

IS_USED_LOCK函数

语法如下:

is_used_lock(str)

检查名字为str的锁是否正在被使用。若正在被使用,返回使用该锁的连接ID;否则,返回NULL。

【示例】检查名字为’sql.wang’的锁是否正在被使用:

mysql> select is_used_lock('sql.wang');
+--------------------------+
| is_used_lock('sql.wang') |
+--------------------------+
|                       13 |
+--------------------------+
1 row in set (0.00 sec)

IS_FREE_LOCK函数

语法如下:

is_free_lock(str)

检查名字为str的锁是否被释放。若锁已经被释放,返回1;若未被释放,返回0。

【示例】检查名字为’sql.wang’的锁是否已被释放:

mysql> select is_free_lock('sql.wang');
+--------------------------+
| is_free_lock('sql.wang') |
+--------------------------+
|                        0 |
+--------------------------+
1 row in set (0.00 sec)

RELEASE_LOCK函数

语法如下:

release_lock(str)

释放名字为str的锁。若释放成功,返回1;若锁不存在,返回NULL。

【示例】设置一个名字为’sql.wang’的锁:

mysql> select release_lock('sql.wang');
+--------------------------+
| release_lock('sql.wang') |
+--------------------------+
|                        1 |
+--------------------------+
1 row in set (0.00 sec)

mysql> select release_lock('sql.wang');
+--------------------------+
| release_lock('sql.wang') |
+--------------------------+
|                     NULL |
+--------------------------+
1 row in set (0.00 sec)
picture loss