一、数学函数
1 ABS(X) 绝对值
2 PI() 圆周率
3 FLOOR(X) 不大于x的最大整数值
4 RAND()|RAND(X) 随机数;x参数相同时,生成相同的随机数。
5 ROUND(x)|ROUND(X,Y) 四舍五入;y指定保留的位数,可以为负。
6 TRUNCATE(X,Y) 截取,保留小数点后y位,可以为负。
7 POW(X,Y)|POWER(X,Y) x的y次方。
二、字符串函数
1 CHAR_LENGTH(str) 字符个数 ‘一个汉字算一个字符’
2 LENGTH(str) 字节长度 ‘一个汉字是3字节’
3 CONCAT(S1,S2...) 拼接, 参数中有null,则返回null。
4 CUNCAT_WS(X,S1,S2...) 有分割符的拼接,x为分隔符,拼接时忽略参数为null的。若x为null,返回null。
5 INSERT(s1,x,len,s2) s1被替换(连续的)的字符串,s2要替换的字符串,x起始位置,len长度。任何一个参数为null,返回null。
6 LCASE(str)或LOWER(str) | UCASE(str)或UPPER(str) 转换为小写|大写
7 LEFT(s,n) | RIGHT(s,n) 返回字符串s左|右边的n位
8 LPAD(s1,len,s2) | RPAD(s1,len,s2) s1左|右边由s2填充到len长度 若len小于s1本身的长度,将从右截取致len长度
9 TRIM(s) | LTRIM(s) | RTRIM(s) 去空格|左边空格|右边空格
10 REPLACE(s,s1,s2) 将字符串s中的s1替换(单个字符串)为s2
11 STRCMP(s1,s2) 比较大小,相同返回0,第一个小,返回-1,其他情况返回1.
12 SUBSTRING(s,n,len) | MID(s,n,len) 截取字符串s,从第n位开始,长度为len。
13 LOCATE(str1,str) | POSITION(str1 IN str) | INSTR(str,str1) str1在str中开始出现的位置。
14 REVERSE(s) 逆序
三、日期和时间函数
1 CURDATE()、CURRENT_DATE() | CURTIME()、CURRENT_TIME() 返回当前日期|时间
2 CURRENT_TIMESTAMP()、LOCALTIME()、NOW()、SYSDATE() 当前日期和时间
3 UNIX_TIMESTAMP(date) | FROM_UNIXTIME(date) 返回date的时间戳|把时间戳转换日期时间
4 UTC_DATE() | UTC_TIME() 当前时区的日期|时间
5 MONTH(date) | MONTHNAME(date) 返回月份|英文月份
6 DAYNAME(d) | DAYOFWEEK(d) | WEEKDAY(d) 英文星期|1表示周日,2表示周一|0表示周日,1表示周二。
7 ADDDATE(date,INTERVAL expr type)、DATE_ADD(date,INTERVAL expr type) 日期时间加法 expr为加或减的时间间隔 type理解为单位就可以
8 SUBDATE(date,INTERVAL expr type)、DATE_SUB(date,INTERVAL expr type) 减法
9 ADDTIME(date,expr) | SUBTIME(date,expr) 时间加法|减法
10 DATEDIFF(date1,date2) 日期间隔
11 DATE_FORMAT(date,format) 格式化
四、条件判断函数
1 IF(expr,v1,v2) java中的三元,返回值为数字或字符串
2 IFNULL(v1,v2) v1不为null 返回v1,为null 返回v2
3 CASE [expr] WHEN v1 THEN r1....[WHEN vn THEN rn] [ELSE rn] END 带参数expr,判断expr和v几相等,就执行r几。不带参数expr,判断v几为true(v可以是表达式),就执行r几,就相当与java中的if语句。
五、系统信息函数
1 VERSION() 版本号
2 SHOW [FULL] PROCESSLIST 用户的当前连接(root用户可以看到所有),加full可以显示所有,不加只显示前100条。
3 DATABASE() 当前使用的数据库名
4 USER() 当前登录的用户名
5 LAST_INSERT_ID() 返回最后一个自动生成的id值,一次插入一条,返回最后一条的id;一次插入多条,返回该语句中第一条的id。
六、加/解密函数
1 PASSWORD(str) 加密用户密码 单向的(不可逆)
2 MD5(str) 32位16进制数字的二进制字符串
3 ENCODE(str,pswd_str) 使用pswd_str作为密码,加密str;
4 DECODE(crypt_str,pswd_str)使用pswd_str作为密码,解密crypt_str(由ENCODE()返回的字符串),解密结果,是和str长度相同的二进制字符串。
七、其他函数
1 FORMAT(x,n) 将数字x格式化,以四舍五入方式保留小数点后n位,结果以字符串形式返回
2 INET_ATON(expr) 将IPv4地址转化为一个代表该地址的整数。如 ‘209.207.224.40’的计算方法:209*2563+207*2562+224*256+40
3 INET_NTOA(expr) 将数字地址转换为IPv4地址
4 GET_LOCK(str,timeout) 使用字符串str给定的名字得到一个锁,持续timeout秒,成功返回1,超时返回0,错误返回null。
5 RELEASE_LOCK(str) 解开被GET_LOCK()获取的锁
6 IS_FREE_LOCK(str) 检查名为str的锁是否可以使用(没有被封锁)
7 IS_USED_LOCK(str) 检查名为str的锁是否正在被使用(被封锁)
8 BENCHMARK(count,expr) 函数重复count次执行表达式expr,用于计算mysql处理表达式的时间。