1 数学函数
| 函数 | 说明 |
|---|
| ABS(X) | 返回X的绝对值 |
| PI() | 返回圆周率,默认显示小数点后6位 |
| SQRT(X) | 返回X的平方根 |
| MOD(X, Y) | 返回X被Y除后的余数 |
| CEIL(X) | 返回不小于X的最小整数值 |
| CEILING(X) | 返回不小于X的最小整数值 |
| FLOOR(X) | 返回不大于X的最大整数值 |
| RAND() | 产生随机数 |
| RAND(X) | 产生随机数,若X参数相同,多次执行,产生的随机数相同 |
| ROUND(X) | 返回对X进行四舍五入操作后的整数值 |
| ROUND(X, Y) | 对X进行四舍五入操作,其值保留到小数点后Y位,若Y为负,则保留到小数点左边Y位 |
| SIGN(X) | 返回X的符号,负则返回-1,零则返回0,正则返回1 |
| POW(X, Y) | 返回X的Y次幂 |
| POWER(X, Y) | 返回X的Y次幂 |
| EXP(X) | 返回e的X次幂 |
| LOG(X) | 返回X的自然对数 |
| LOG10(X) | 返回X的基数为10的对数 |
| RADIANS(X) | 角度转化为弧度 |
| DEGREES(X) | 弧度转化为角度 |
| SIN(X) | 正弦函数 |
| ASIN(X) | 正弦函数的反函数 |
| COS(X) | 余弦函数 |
| ACOS(X) | 余弦函数的反函数 |
| TAN(X) | 正切函数 |
| ATAN(X) | 正切函数的反函数 |
| COT(X) | 余切函数 |
还有一个函数:TRUNCATE(X, Y)返回X被截掉小数点后Y位的数字,若Y为0,则截掉小数部分,若Y为负,X小数点左边|y|位置0,例如:
TRUNCATE(1.21, 1) = 1.2
TRUNCATE(1.21, 0) = 1
TRUNCATE(31.21, -1) = 30
2 字符串函数
| 函数 | 说明 |
|---|
| CHAR_LENGTH(str) | 计算字符串str的字符个数 |
| CONCAT(s1, s2, …) | 拼接s1, s2, … |
| CONCAT_WS(x, s1, s2, …) | 使用分隔符x将s1, s2, …拼接起来 |
| INSERT(s1, x, len, s2) | 返回字符串s1,其子字符串起始于x位置和被字符串s2取代的len字符 |
| LOWER(str) | 大写字母转为小写 |
| LCASE(str) | 大写字母转为小写 |
| UPPER(str) | 小写字母转为大写 |
| UCASE(str) | 小写字母转为大写 |
| LEFT(s, n) | 返回字符串s左边n个字符组成的子串 |
| RIGHT(s, n) | 返回字符串s右边n个字符组成的子串 |
| LPAD(s1, len, s2) | 返回字符串s1,其左边被字符串s2填补至len字符长度 |
| RPAD(s1, len, s2) | 返回字符串s1,其右边被字符串s2填补至len字符长度 |
| LTRIM(s) | 删除字符串s左端的空格 |
| RTRIM(s) | 删除字符串s右端的空格 |
| TRIM(s) | 删除字符串s两端的空格 |
| TRIM(s1 FROM s) | 删除字符串s中两端所有的字串s1,未指定s1时默认为空格 |
| REPEEAT(s, n) | 返回n个字符串s拼接成的字符串 |
| SPACE(n) | 返回一个由n个空格组成的字符串 |
| REPLACE(s, s1, s2) | 使用字符串s2替换s中所有的s1 |
| STRCMP(s1, s2) | 字符串比较 |
| SUBSTRING(s, n, len) | 返回字符串s中从n开始长度为len的子串 |
| MID(s, n, len) | 返回字符串s中从n开始长度为len的子串 |
| LOCATE(str1, str) | 返回str1在字符串str中的位置 |
| POSITION(str1 IN str) | 返回str1在字符串str中的位置 |
| INSTR(str, str1) | 返回str1在字符串str中的位置 |
| REVERSE(s) | 返回反转后的字符串 |
| ELT(n, s1, s2, …) | 返回s1, s2, …中第n个字符串 |
| FIELD(s, s1, s2, …) | 返回字符串s在s1, s2, …中所在的位置 |
| FIND_IN_SET(s1, s2) | 返回字符串s1在字符串列表s2中的位置 |
| MAKE_SET(x, s1, s2, …) | 返回由x的二进制数指定的相应位的字符串组成的字符串 |
3 日期和时间函数
| 函数 | 说明 |
|---|
| CURDATE() | 返回当前日期 |
| CURRENT_DATE() | 返回当前日期 |
| CURTIME() | 返回当前时间 |
| CURRENT_TIME() | 返回当前时间 |
| CURRENT_TIMESTAMP() | 返回当前日期和时间组合 |
| LOCALTIME() | 返回当前日期和时间组合 |
| NOW() | 返回当前日期和时间组合 |
| SYSDATE() | 返回当前日期和时间组合 |
| UNIX_TIMESTAMP() | 返回Unix时间戳,1970年之后的秒数 |
| UNIX_TIMESTAMP(date) | 返回Unix时间戳,1970年之后的秒数 |
| FROM_UNIXTIME(date) | 把Unix格式时间戳转化为普通格式时间 |
| UTC_DATE() | 返回当前UTC日期值(世界标准时间) |
| UTC_TIME() | 返回当前UTC时间值 |
| MONTH(date) | 返回date对应的月份,1-12 |
| MONTHNAME(date) | 返回日期date对应月份的英文名 |
| DAYNAME(d) | 返回日期d对应的英文名称,例如Sunday,Monday等 |
| DAYOFWEEK(d) | 返回日期d对应一周中的第几天,1表示周日,2表示周一,7表示周六 |
| WEEKDAY(d) | 返回日期d对应一周中的第几天,0表示周一,1表示周二,6表示周日 |
| WEEK(d) | 日期d是一年中的第几周 |
| WEEK(d, mod) | 返回日期d是一年中的第几周,mod可以决定一周是从周几开始的 |
| WEEKOFYEAR(d) | 返回某天位于一年中的第几周 |
| DAYOFYEAR(d) | 返回日期d是一年中的第几天 |
| DAYOFMONTH(d) | 返回日期d是当月中的第几天 |
| YEAR(date) | 返回date对应的年份 |
| QUARTER(date) | 返回date在一年中的第几季度 |
| MINUTE(time) | 返回time中的分钟数 |
| SECOND(time) | 返回time中的秒数 |
| EXTRACT(type FROM date) | 提取date中的一部分 |
| TIME_TO_SEC(time) | 将time转化为秒数 |
| SEC_TO_TIME(seconds) | 将秒数转为时分秒形式的时间 |
| DATE_FORMAT(date, format) | 将日期时间格式化 |
计算日期和时间的函数DATE_ADD(),ADDDATE(),DATE_SUB(),SUBDATE(),ADDTIME(),SUBTIME(),DATE_DIFF().
4 条件判断函数、加密解密函数、系统信息函数
| 函数 | 说明 |
|---|
| IF(expr, v1, v2) | 如果表达式expr是TRUE,返回v1;否则返回v2 |
| IFNULL(v1, v2) | 如果v1不为NULL,返回v1;否则返回v2 |
| CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END | case语句 |
| VERSION() | 返回MySQL服务器版本 |
| CONNECTION_ID() | 返回Mysql服务器当前连接的次数 |
| DATABASE() | 返回使用utf8字符集的默认数据库名 |
| SCHEMA() | 返回使用utf8字符集的默认数据库名 |
| USER() | 返回当前被MYsql服务器验证的用户名和主机名组合 |
| CURRENT_USER() | 返回当前被MYsql服务器验证的用户名和主机名组合 |
| SYSTEM_USER() | 返回当前被MYsql服务器验证的用户名和主机名组合 |
| SESSION_USER() | 返回当前被MYsql服务器验证的用户名和主机名组合 |
| CHARSET(str) | 返回字符串str使用的字符集 |
| COLLATION(str) | 返回字符串str的字符排列方式 |
| LAST_INSERT_ID() | 返回最后一个INSERT或UPDATE或AUTO_INCREMENT列设置的第一个发生的值 |
| PASSWORD(str) | 加密函数 |
| MD5(str) | 计算字符串的MD5 128比特校验和 |
| ENCODE(str, pswd_str) | 加密函数 |
| DECODE(crypt_str, pswd_str) | 解密函数 |
| FORMAT(x, n) | 将数值x保留小数点后n位,结果以字符串形式返回 |
| CONV(n, from_basem, to_base) | 将数值n,从一种进制转化为另一种进制 |
| INET_ATON(expr) | 将字符串网络地址转化为整型 |
| INET_NTOA(expr) | 将数值网络地址转化为字符串网络地址 |
| GET_LOCK(str, timeout) | 获取一个锁 |
| RELEASE_LOCK(str) | 释放锁 |
| IS_FREE_LOCK(str) | 检查锁str是否可以被使用 |
| IS_USED_LOCK(str) | 检查锁str是否正在被使用 |
| BENCHMARK(count, expr) | 重复执行表达式expr,执行count次 |
| CONVERT(str USING type) | 转化字符串str的编码格式 |
| CAST(x AS type) | 将x转化为type类型 |
| CONVERT(x, type) | 将一个类型的x转化为另一种类型 |