MD5函数

语法如下:

md5(str)
md5(str)
md5(str)

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

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

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

SHA函数

语法如下:

sha(str)
sha(str)
sha(str)

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

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

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

SHA2函数

语法如下:

sha2(str,hash_length)
sha2(str,hash_length)
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)
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)
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)
get_lock(str,timeout)
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)
mysql> select get_lock('sql.wang',600); +--------------------------+ | get_lock('sql.wang',600) | +--------------------------+ | 1 | +--------------------------+ 1 row in set (0.00 sec)
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)
is_used_lock(str)
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)
mysql> select is_used_lock('sql.wang'); +--------------------------+ | is_used_lock('sql.wang') | +--------------------------+ | 13 | +--------------------------+ 1 row in set (0.00 sec)
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)
is_free_lock(str)
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)
mysql> select is_free_lock('sql.wang'); +--------------------------+ | is_free_lock('sql.wang') | +--------------------------+ | 0 | +--------------------------+ 1 row in set (0.00 sec)
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)
release_lock(str)
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)
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)
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