mysql数据库中提供了很丰富的函数。mysql函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。
简单介绍几类函数的使用范围:
数学函数:这类函数只要用于处理数字。这类函数包括绝对值函数、正弦函数、余弦函数、获取随机数函数等。
字符串函数:这类函数主要用于处理字符串。其中包括字符串连接函数、字符串比较函数、将字符串的字母变成小写或大写字母的函数、获取子串的函数等。
日期和时间函数:这类函数主要用于处理日期和时间。其中包括取当前时间的函数、获取当前日期的函数、返回年份的函数、返回日期的函数等。
流程函数:这类函数主要用于在SQL语句中控制条件选择。其中包括IF语句、CASE语句、WHEN语句等。
系统信息函数:这类函数主要用于获取mysql数据库的系统信息。其中包括获取数据库名的函数、获取当前用户的函数、获取数据库版本的函数等。
加密函数:这类函数主要用于对字符串进行加密解密。其中包括字符串加密函数、字符串解密函数等。
其他函数:包括格式化函数、锁函数等。
1.数学函数
| | | | | | | | | | | | | 返回x的符号,x是负数、0、正数分别返回-1、0、1 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
2.字符串函数
| | | | | | | | | 同COUCAT(s1,s2,.....),但是每个字符串之间要加上x | | 将字符串s2替换s1的x位置开始长度为len的字符串 | | | | | | | | | | 字符串s2来填充s1的开始处,使字符串长度达到len | | 字符串s2来填充s1的结尾处,使字符串长度达到len | | | | | | | | | | | | | | | | | | 获取从字符串s中的第n个位置开始长度为len的字符串 | | | ATE(s1,s),POSTTION(s1 IN s) | | | | | | | | | | | | | 按x的二进制数从s1,s2......sn中选取字符串 |
3.日期和时间函数
| | | | | | NOW(),CURRENT_TIMESTAMP() LOCALTIME(),SYSDATE() LOCALTIMESTAMP() | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 从日期d中获取指定的值,type指定返回的值,如YEAR,HOUR等 | | | | | | | | | | | | | ADDDATE(d, INTERVAL expr type) | | | 计算起始日期d减去n天的日期
| SUBDATE(d, INTERVAL expr type) | | | | | | | | | | | |
4.条件判断函数
条件判断函数用来在SQL语句中进行条件判断。更加是否满足判断条件,SQL语句执行不同的分支。
4.1 IF(expr,v1,v2)函数
IF(expr,v1,v2)函数中,如果表达式expr成立,返回结果v1,否则,返回结果v2。
mysql> selectname,if(price>2,'OK','ON') from food; +--------------+-----------------------+ | name | if(price>2,'OK','ON') | +--------------+-----------------------+ | 光磊饼干 | OK | | 宪政牛奶 | OK | | 兴周果冻 | ON | | GG咖啡 | OK | | XX奶糖 | OK | +--------------+-----------------------+ 5 rows in set (0.00sec)
4.2CASE函数
CASEWHEN expr1 THEN v1 [WHEN expr2 THEN v2...][ELSE vn] END
mysql> selectname,case when price =1.5 then 'OK' when price >3.5 then 'on my god' endfrom food; +--------------+---------------------------------------------------------------------+ | name | case when price =1.5 then 'OK' whenprice >3.5 then 'on my god' end | +--------------+---------------------------------------------------------------------+ | 光磊饼干 | NULL | | 宪政牛奶 | NULL | | 兴周果冻 | OK | | GG咖啡 | on my god | | XX奶糖 | on my god | +--------------+---------------------------------------------------------------------+ 5 rows in set (0.00sec)
5.系统信息函数
系统信息函数用来查询mysql数据库的系统信息。例如查询数据库的版本,查询数据的当前用户等。
| | | | | 返回服务器的连接数,也就是到现在为止mysql服务的连接次数 | | | | | | | | | | 返回最后生成的auto_increment值
|
6.加密解密函数
加密函数是mysql中用来对数据进行加密的函数。
| | | | | | | 使用字符串pswd_str来加密字符串str,加密结果是一个二进制数,必须使用BLOB类型来保持它 | DECODE(crypt_str,pswd_str) | 解密函数,使用字符串pswd_str来为crypt_str解密 |
7.其他函数
| | | 格式化函数,可以讲数字x进行格式化,将x保留到小数点后n位,这个过程需要进行四舍五入。 | | | | | | | | | | | | | | | | 加锁函数,定义一个名称为name、持续时间长度为time秒的锁,如果锁定成功,返回1,如果尝试超时,返回0,如果遇到错误,返回NULL. | | 解除名称为name的锁,如果解锁成功,返回1,如果尝试超时,返回0,如果解锁失败,返回NULL。 | | 判断是否使用名为name的锁,如果使用,返回0,否则返回1. | | | CAST(x AS type),CONVERT(x,type) | 这两个函数将x变成type类型,这两个函数只对BINARY,CHAR,DATE,DATETIME,TIME,SIGNED INTEGER,UNSIGNED INTEGER这些类型起作用,但这两种方法只是改变了输出值得数据类型,并没有改变表中字段的类型。 |
|