条件判断函数
条件判断函数也称流程控制函数,根据满足的条件不同,执行相应的流程。有IF、IFNULL、和CASE等。
IF函数
IF(expr,v1,v2)如果表达式expr是TRUE,则IF()的返回值为v1,否则返回v2。
IFNULL函数
IFNULL(v1,v2)假如v1不为NULL,则函数返回值为v1,否则其返回值为v2。
CASE函数
语法:CASE expr WHEN
v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END
如果expr值等于某个vn,则返回对应位置THEN后面的结果;否则返回ELSE后面的rn值。
系统信息函数
获取MySQL版本号、连接数和数据库名的函数
VERSION()返回MySQL服务器的版本信息;
CONNECTION_ID()返回MySQL服务器当前连接的次数,每个连接都有各自唯一的ID;
PROCESSLIST命令输出当前用户的连接信息;
DATABASE()和SCHEMA()函数返回当前的数据库名称。
获取用户名的函数
USER()、SYSTEM_USER()、SESSION_USER()、CURRENT_USER()返回当前用户。
获取字符串的字符集和排序方式的函数
CHARSET(str)返回字符串str的字符集;
COLLATION(str)返回字符串str的字符排列方式。
获取最后一个自动生成的ID值的函数
LAST_INSERT_ID()返回最后生成的AUTO_INCREMENT值;
这里注意一点是:
一次插入一条记录时返回值为最后一条插入值的ID值;
一次插入多行时返回的是插入第一行数据时产生的值。
加密函数
加密函数主要用来对数据进行加密和界面处理,以保证某些重要数据不被别人获取,
PASSWORD(str)返回原明文密码加密后的密码字符串;
MD5(str)返回一个MD5 128 比特校验和,该值以32位十六进制数字的二进制字符串形式返回,若参数为NULL,则返回NULL。
ENCODE(str,pswd_str)使用pswd_str作为密码,加密str;使用DECODE(crypt_str,pswd_str)使用pswd_str作为密码,解密加密字符串crypt_str.
其他常见函数
格式化函数
FORMAT(x,n)将数字x格式化,并四舍五入保留小数点后n位;
进制转换函数
CONV(n,from_base,to_base)将n由from_base进制转换为to_base进制;
IP地址与数字互换函数
INET_ATON(expr)将IP地址转换为数值网络地址,计算方法为:114*256^3 + 114*256^2 + 10*256 + 0
INET_NTOA(expr)将数值网络地址转化为字符串网络地址。
加、解锁函数
GET_LOCK(str,timeout)使用字符串str给定的名字得到一个锁,超时未timeout秒;成功返回1,超时返回0,发生错误返回NULL;
RELEASE_LOCK(str)解开被GET_LOCK()获取的锁;
IS_FREE_LOCK(str)检查名为str的锁是否可用;
IS_USED_LOCK(str)检查名为str的锁是否正在用(被封锁)。
重复执行函数
BENCHMARK(count,expr)函数重复count次执行表达式expr。
改变字符集函数
CONVERT(...USING...)带有USING的CONVERT()函数用来在不同字符集之间转换数据。
改变数据类型函数
CAST(x,AS type)和CONVERT(x,type)函数将一个类型的值转换为另一个类型的值;可转换的type有:BINARY、CHAR(n)、DATE、TIME、DATETIME、DECIMAL、SIGNED、UNSIGNED。