MySQL函数是MySQL数据库提供的内部函数。这些内部函数可以帮助用户更加方便的处理表中的数据。本文将简单的介绍MySQL中一些常见的函数,方便之后查阅。
总结了SQL语句中常见的五种函数,分别是:
字符函数:对字符串、二进制数据或表达式执行操作。
数学函数:对表中的数据进行算数运算。
日期函数:处理表中的日期和时间。
聚合函数:返回数据的总汇值。
流程控制函数:实现SQL的条件逻辑
字符函数
函数名 | 函数作用 |
---|---|
ASCII(char) | 返回字符的ASCII码 |
BIT_LENGTH(str) | 返回字符串的比特长度 |
CONCAT(s1,s2) | 拼接字符串 |
CONCAT_WS(sep,s1,s2…,sn) | 将s1,s2…sn连接成字符串,使用sep进行间隔 |
FORMAT(x,n) | 将数字x进行格式化“x,xxx.xx”保留n位小 |
INSERT(str1,x,y,str2) | 将字符串str1从x位置开始,将y个字符长的字符串替换为str2 |
INSTR(str1,str2) | 返回子串str2第一次在str1中出现的索引,如果找不到返回0 |
LEFT(str,x) | 返回字符串str中最左边的x个字符 |
LENGTH(str) | 获取参数值的字节个数 |
LOCATE(str1,str2) | 在str2中查找str1第一次出现的索引 |
LOWER(str)/LCASE(s) | 将其转换为小写 |
LPAD(str1,num,str2) | 用指定的字符str2实现左填充指定长度,如果num小于str1的 字符长度,则从右边截断至num字符长度 |
LTRIM(str) | 删除str前面的空格 |
POSITION(str1 IN str2) | 在str2中查找str1第一次出现的索引 |
REPEAT(str,n) | 将字符串str重复n次,如果n<=0,返回一个空字符串。如果str或者n是NULL,返回NULL |
REPLACE(str1,str2,str3) | 将str1中的str2全部替换为str3 |
REVERSE(str) | 颠倒字符串 |
RIGHT(str,x) | 返回字符串str中最右边的x个字符 |
RPAD(str1,num,str2) | 用指定的字符str2实现右填充指定长度,如果num小于str1的字符长度,则从左边截断至num字符长度 |
STRCMP(s1,s2) | 比较字符串s1和s2,大于1,等于0,小于-1 |
SUBSTR(str,num1,num2) | 截取从指定索引num1处num2字符长度的字符 |
TRIM(str)/LTRIM(str)/RTRIM(str) | 删除str两边/左/右的空格,(str1,str2)删除所有的str1 |
UPPER(str)/UCASE(str) | 将其转换为大写 |
回目录
数学函数
函数名 | 函数作用 |
---|---|
ABS(x) | 返回绝对值 |
BIN(x) | 返回二进制(OCT返回八进制,HEX返回十六进制) |
CEILING(X) | 返回大于等于x的最小整数值 |
EXP(x) | 返回值e的x次方 |
FLOOR(x) | 返回小于等于x的最大整数值 |
GREATEST(x1,x2,…,xn) | 返回集合中的最大值 |
LEAST(x1,x2,…,xn) | 返回集合中的最小值 |
LN(x) | 返回x的自然对数 |
LOG(x,y) | 返回x的以y为底的对数 |
MOD(x,y) | 返回模(x-x/y*y) |
ROUND(x) | 四舍五入 |
SQRT(x) | 返回一个输的方平根 |
TRUNCATE(x,y) | 返回数字x截短为y位小数的结果 |
POWER(x,y) | 返回x的y次幂 |
SIGN(x) | 返回x的符号,负数-1, |
回目录
日期函数
函数名 | 函数作用 |
---|---|
ADDDATE(date,n) /SUBDATE(date,n) | 从date开始加n天的日期 |
ADDTIME(t,n) | 时间t加上n秒的时间 |
CURTIME() | 获取当前的时间 |
DATE_FORMAT(date,fmt) | 按照指定的fmt格式进行格式化日期 |
DATEDIFF(d1,d2) | 计算指定日期d1与d2之间相隔的天数 |
DAYNAME(date) | 返回date的星期名 |
DAYOFMONTH(date) | 返回date是一月中的第几天 |
DAYOFWEEK(date) | 返回date是一周中的第几天 |
DAYOFYEAR(date) | 返回date是一年中的第几天 |
FROM_UNIXTIME(时间戳) | 时间戳转日期 |
GETDATE()/CURDATE() | 获取当前系统的日期 |
HOUR(date) | 返回time的小时值 |
LAST_DAY(date) | 返回指定月份的最后一天 |
MINUTE(date) | 返回time的分钟值 |
MONTH(date) | 返回date中的月份值 |
MONTHNAME(date) | 返回date的月份名 |
NOW() | 返回当前的日期和时间 |
QUARTER(date) | 返回date在一年中的季度(1~4) |
UNIX_TIMESTAMP(date) | 得到时间戳 |
WEEK(date) | 返回date为一年中的第几周(0~53) |
YEAR(date) | 返回date的年份(1000~9999) |
回目录
聚合函数
函数名 | 函数作用 |
---|---|
AVG(col) | 返回指定列的平均值 |
COUNT(*) | 返回表中的所有行数 |
COUNT(col) | 返回指定列中非NULL值的个数 |
GROUP_CONCAT(col) | 返回由属于一组的列值链接组合而成的结果(详解) |
MAX(col) | 返回指定列的最大值 |
MIN(col) | 返回指定列的最小值 |
SUM(col) | 返回指定列的所有值之和 |
回目录
流程控制函数
函数名 | 函数作用 |
---|---|
CASE WHEN[test1] THEN [result1]…ELSE[default] | 如果testN为真,则返回resultN,否则返回default |
CASE [test] WHEN[val1] THEN[result]…ELSE[default]END | 如果test和valN相等,则返回resultN,否则返回default |
IF(test,t,f) | 如果test是真,返回t,否则返回f |
IFNULL(arg1,arg2) | 如果arg1不是空,返回agr1,否则返回arg2 |
NULLIF(arg1,arg2) | 如果arg1=arg2,返回NULL,否则返回arg1 |
回目录
上面的一些总结只是目前了解到的,作为一个学习笔记,还有很多没有总结,会持续更新。欢迎各位批评指正!