Mysql常用函数实战

一 使用FORMAT函数格式化数字,保留小数点位数为指定值

mysql> SELECT FORMAT(12332.123456, 4), FORMAT(12332.1,4), FORMAT(12332.2,0);
+-------------------------+-------------------+-------------------+
| FORMAT(12332.123456, 4) | FORMAT(12332.1,4) | FORMAT(12332.2,0) |
+-------------------------+-------------------+-------------------+
| 12,332.1235             | 12,332.1000       | 12,332            |
+-------------------------+-------------------+-------------------+
1 row in set (0.01 sec)

二 使用CONV函数在不同进制数值之间转换

SELECT CONV('a',16,2),
     CONV(15,10,2),
     CONV(15,10,8),
     CONV(15,10,16);
+----------------+---------------+---------------+----------------+
| CONV('a',16,2) | CONV(15,10,2) | CONV(15,10,8) | CONV(15,10,16) |
+----------------+---------------+---------------+----------------+
| 1010           | 1111          | 17            | F              |
+----------------+---------------+---------------+----------------+
1 row in set (0.00 sec)

三 使用INET_ATON函数将字符串网络点地址转换为数值网络地址

mysql> SELECT INET_ATON('209.207.224.40');
+-----------------------------+
| INET_ATON('209.207.224.40') |
+-----------------------------+
|                  3520061480 |
+-----------------------------+
1 row in set (0.00 sec)

3520061480 = 209*256^3+207*256^2+224*256+40

四 使用INET_NTOA函数将数值网络地址转换为字符串网络点地址

mysql> SELECT INET_NTOA(3520061480);
+-----------------------+
| INET_NTOA(3520061480) |
+-----------------------+
| 209.207.224.40        |
+-----------------------+
1 row in set (0.00 sec)

五 使用加锁、解锁函数

SELECT GET_LOCK('lock1',10) AS GetLock,
     IS_USED_LOCK('lock1') AS ISUsedLock,
     IS_FREE_LOCK('lock1') AS ISFreeLock,
     RELEASE_LOCK('lock1') AS ReleaseLock;
+---------+------------+------------+-------------+
| GetLock | ISUsedLock | ISFreeLock | ReleaseLock |
+---------+------------+------------+-------------+
|       1 |          2 |          0 |           1 |
+---------+------------+------------+-------------+
1 row in set (0.00 sec)

六 使用BENCHMARK重复执行指定函数

首先,使用PASSWORD函数加密密码

mysql> SELECT PASSWORD ( 'newpwd' );
+-------------------------------------------+
| PASSWORD ( 'newpwd' )                     |
+-------------------------------------------+
| *1FA85AA204CC12B39B20E8F1E839D11B3F9E6AA4 |
+-------------------------------------------+
1 row in set, 1 warning (0.00 sec)

可以看到,PASSWORD执行花费时间为0.00sec,下面使用BENCHMARK函数重复执行PASSWORD操作500000次:

mysql> SELECT BENCHMARK( 500000, PASSWORD ('newpwd') );
+------------------------------------------+
| BENCHMARK( 500000, PASSWORD ('newpwd') ) |
+------------------------------------------+
|                                        0 |
+------------------------------------------+
1 row in set, 1 warning (0.06 sec)

七 使用CONVERT()函数改变字符串的默认字符集

mysql> SELECT CHARSET('string'),  CHARSET(CONVERT('string' USING latin1));
+-------------------+-----------------------------------------+
| CHARSET('string') | CHARSET(CONVERT('string' USING latin1)) |
+-------------------+-----------------------------------------+
| utf8              | latin1                                  |
+-------------------+-----------------------------------------+
1 row in set (0.01 sec)

八 使用CAST和CONVERT函数进行数据类型的转换

mysql> SELECT CAST(100 AS CHAR(2)), CONVERT('2010-10-01 12:12:12',TIME);
+----------------------+-------------------------------------+
| CAST(100 AS CHAR(2)) | CONVERT('2010-10-01 12:12:12',TIME) |
+----------------------+-------------------------------------+
| 10                   | 12:12:12                            |
+----------------------+-------------------------------------+
1 row in set, 1 warning (0.01 sec)
发布了4080 篇原创文章 · 获赞 538 · 访问量 296万+

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/103948003