1、数学函数
表达式 | 说明 |
ABS(x) | 绝对值函数 |
PI() | 返回圆周率的函数 |
SQRT(x) | 平方根函数 |
MOD(x, y) | 求余函数 |
CEIL(x) / CEILING(x) | 向上取整 |
FLOOR(x) | 向下取整 |
RAND(x) | 返回一个随机浮点数,范围在0到1之间 |
ROUND(x) | 四舍五入,只保留整数部分 |
ROUND(x,y) | 四舍五入,保留小数点后面y位 |
SIGN(x) | 返回参数的符号,x的值为负、零或正时返回结果依次为-1、0 或 1 |
POW(x,y)/POWER(x,y) | 返回x的y次方的结果值 |
LOG(x) | 返回x的自然对数,x相对于基数e的对数 |
RANDIANS(x) | 将参数x由角度化为弧度 |
DEGEREES(x) | 将参数x由弧度化为角度 |
SIN(x) | 返回正弦,其中x为弧度值 |
ASIN | x的反正弦 |
COS(x) | 返回x的余弦 |
ACOS(x) | 返回x的反余弦 |
TAN(x) | 正切,x为弧度值 |
ATAN(x) | 反正切, x为正切的值 |
COT(x) | 余切 |
2、字符串函数
表达式 | 说明 |
CHAR_LENGTH | 计算字符串字符个数 |
CONCAT(s1,s2,...) | 连接字符串。返回结果为连接参数产生的字符串,允许有一个或多个参数,如有任何一个参数为NULL, 则返回值为NULL |
CONCAT_WX(x, s1, s2, ....) | 连接字符串,第一个参数x为连接符。用法同上 |
INSERT(s1, x, len, s2) | 返回字符串s1,其子字符串起始于x位置和被字符串s2取代的len字符。如x超过字符串长度, 则返回原始字符串。如len长度大于其它字符串的长度,则从位置x开始替换。任何一个参数为NULL,则返回NULL |
LOWER(str) / LCASE(str) | 将字符串中所有字母字符串转为小写 |
UPPER(str) / UCASE(str) | 将字符串中的字母字符串全部转换成大写 |
LEFT(s, n) | 返回字符串最左边的n个字符 |
RIGHT(s, n) | 返回字符串最右边的n个字符 |
LPAD(s1, len, s2) | 返回字符串s1, 其左边由字符串s2填补到len字符串长度。如s1的长度大于len,则返回值被缩短至len字符 |
RPAD(s1, len, s2) | 返回字符串s1, 其右边字符串s2填补至len字符串长度。如字符串s1的长度大于len,则返回被 缩短得到len字符串长度 |
LTRIM(s) | 返回字符串s,字符串左侧空格字符被删除 |
RTRIM(s) | 返回字符串s,字符串右侧空格被删除 |
TRIM(s) | 删除字符串s两侧的空格 |
TRIM(s1, FROM s) | 删除字符串s中两端所有的字符串s1,s1为可选,在未制定情况下,删除空格 |
REPEAT(s, n) | 返回一个由重复的字符串s组成的字符串,字符串s的数目等于n. 若n n<=0,则返回一个空字符串。若 s 或 n 为NULL,则返回 NULL |
SPACE(n) | 返回一个由 n 个空格组成的字符串 |
REPLACE(s,s1,s2) | 使用字符串s2 代替字符串s中的所有字符串s1 |
STRCMP(s1,s2) | 若所有的字符串均相同,则返回0,若根据当前分类次序,第一个参数小于第二个,则返回-1,其他情况返回1 |
SUBSTRING(s,n,len) | 带有len参数的格式,从字符串s放回一个长度同len字符相同的子字符串,起始于位置n。也可能对n使用一个负值。若这样,则子字符串的位置起始于字符串结尾的n字符,即倒数n个字符,而不是字符串的开头位置 |
LOCATE(str1、str) / POSITION(str1 IN str) / INSTR(str,str1) | 返回字符串str1 在字符串 str中的开始位置 |
REVERSE(s) | 将字符串s反转 |
ELT(N, 字符串1,字符串2,字符串3,字符串N) | 若N = 1 ,则返回值为字符串1,若N = 2则返回值为字符串2, 以此类推 |
FIELD(s,s1,s2,....) | 返回字符串 s 在列表s1,s2,... 中第一次出现的位置,在找不到s的情况下,返回值为0.如果s为NULL,则返回值为0, 原因是NULL 不能同任何值进行同等比较 |
FIND_IN_SET(s1,s2) | 返回字符串s1 在字符串s2 中出现的位置,字符串列表由多个逗号分考的字符串组成的列表,如果 s1 不在 s2 或 s2 为空字符串,则返回值为0.如任一参数为NULL,则返回NULL。这个汉书在第一个参数包含一个逗号时将无法正常运行。 |
|
3、日期和时间函数
CURDATE() / CURRENT_DATE() | 将当前日期按照 ' YYYY-MM-DD' 或 YYYYMMDD 格式返回,具体格式根据函数在字符串或是数字语境中而定 |
CURTIME() / CURRENT_TIME() | 将当前时间以 'HH:MM:SS' 或 HHMMSS 的格式返回,具体格式根据函数在字符串或是数字语境中而定 |
CURRENT_TIMESTAMP() / LOCALTIME() / NOW() / SYSDATE() | 返回当前日期和时间值,格式为’YYYY-MM-DD HH:MM:SS‘ 或 YYYYMMDDHHMMSS,具体格式根据函数在字符串或是数字语境中而定 |
UNIX_TIMESTAMP(date) | 若无参数调用,则返回一个Unix时间戳(1970-01-01 00:00:00 GMT之后的秒数)作为无符号整数、其中GMT为格林尼治标准时间。若用date来调用UNIX_TIMESTAMP(),它会将参数值以’1970-01-01 00:00:00‘ GMT后的秒数的形式返回。date可以使一个DATE字符串、DATETIME字符串、TIMESTAMP或一个当地时间的YYMMDD 或 YYYYMMDD格式的数字 |
FROM_UNIXTIME(date) | 把UNIX 时间戳转换为普通格式的时间,与UNIX_TIMESTAMP(date)函数互为反函数 |
UTC_DATE() | 返回当前UTC(世界标准时间)日期值,将当前日期按照 ' YYYY-MM-DD' 或 YYYYMMDD 格式返回,具体格式根据函数在字符串或是数字语境中而定 |
UTC_TIME() | 返回当前时区的时间值,将当前时间以 'HH:MM:SS' 或 HHMMSS 的格式返回,具体格式根据函数在字符串或是数字语境中而定 |
MONTH(date) | 返回date对应的月份,范围值从1~12 |
MONTHNAME(date) | 返回日期date对应月份的英文全名 |
DAYNAME(d) | 获取星期数。 返回d对应的工作日的英文全名,如:Sunday、Monday等 |
DAYOFWEEK(d) | 返回d对应的一周中的索引(位置)。1 表示周日,2表示周一,。。。 |
WEEKDAY() | 返回日期对应的工作日索引 |
WEEK(d) | 计算日期d是一年中的第几周,双参数形式允许指定该星期是否起始于周日或周一,以及返回值的范围是否为从0~53或1~53. |
WEEKOFYEAR(d) | 计算某天位于一年中的第几周,范围是从1~53。相当于WEEK(d,3) |
DAYOFYEAR(d) | 返回d是一年中的第几天,范围1~366 |
DAYOFMONTH(d) | 返回指定日期在一个月中的第几天 1~31 |
YEAR(date) | 返回date对应的年份,范围1970~2069 |
QUARTER() | 返回指定日期对应的季度 |
MINUTE(time) | 返回time对应的分钟数,范围0~59 |
SECOND(time) | 返回time对应的秒数, 范围0~59 |
TIME_TO_SEC(time) | 返回已转化为秒的time参数。 |
SEC_TO_TIME(seconds) | 返回被转化为小时、分钟和秒数的 seconds参数值,将当前时间以 'HH:MM:SS' 或 HHMMSS 的格式返回,具体格式根据函数在字符串或是数字语境中而定 |
TIME_FORMAT(time, format) | 根据format字符串安排time值的格式。 |
4、条件判断函数
IF(expr, v1,v2) | 如果表达式expr 是TRUE,返回值为v1 ,否则为v2 |
IFNULL(v1,v2) | 假如v1不为NULL, 则返回v1, 否则返回v2 |
5、系统信息函数
VERSION() | 返回MySQL版本号 |
CONNECTION_ID() | 返回MySQL如武器当前连接的次数,每个链接都有各自唯一的ID |
SHOW PROCESSLIST | 输出当前用户的连接信息 |
USER() / CURRENT_USER() / SYSTEM_USER() / SESSION_USER() | 返回当前被MySQL服务器验证的用户名和主机名组合 |
CHARSET(str) | 返回字符串str使用的的字符集 |
LAST_INSERT_ID() | 自动返回最后一个INSERT或UODATE为AUTO_INCREMENT列设置的第一个发生的值 |
6、加/解密函数
PASSWORD(str) | 返回str加密后的密码字符串 |
MD5(str) | 使用MD5加密字符串 |
ENCODE(str, pswd_str) | 使用pswd_str作为密码,加密str。使用DECODE()解密结果,是一个和str长度相同的二进制字符串 |
DECODE(crypt_str, pswd_str) | 使用pswd_str作为密码,解密加密字符串crypt_str, crypt_str是由ENCODE()返回的字符串 |
7、其他函数
FORMAT(x, n) | 将数字x格式化,并以四舍五入方式保留小数点后n位. |
INET_ATON(expr) | IP地址转数字,将字符串网络点地址转换为数值网络地址.. |
INET_NTOA(epr) | 数字转IP地址, 将数值网络地址转换为字符串网络点地址 |
参考: 《MySQL5.7从入门到精通》刘增杰