✨MySQL函数
ʚʕ̯•͡˔•̯᷅ʔɞ聚合函数
函数 |
描述 |
参数 |
COUNT() |
计数 |
参数为字段名,返回目标字段非空值的行数; 参数为*,即count(*),则返回表中所有记录的总数。 |
SUM() |
求和 |
字段 |
AVG() |
求平均值 |
字段 |
MAX() |
最大值 |
字段 |
MIN() |
最小值 |
字段 |
ʚʕ̯•͡˔•̯᷅ʔɞ数学函数
函数 |
描述 |
参数 |
ABS() |
abs(x)返回x的绝对值 |
参数可以是一个数字 ,也可以一个字段。 |
FLOOR() |
floor(x)返回小于或等于x的最大整数 |
参数可以是一个数字,也可以是一个字段。 |
RAND() |
rand()返回0-1之间的随机数。 |
参数可以为空,也可以为一个数字(该数字无意义)。参数也可以是一个字段 |
TRUNCATE() |
truncate(x,y)返回x保留y位小数后的值。 |
x和y可以是一个数字 ,也可以是一个字段。 |
SQRT() |
sqrt(x)求参数x的平方根, |
x可以是一个数字 ,也可以是一个字段。 |
ʚʕ̯•͡˔•̯᷅ʔɞ字符串函数
参数说明:以上函数的参数,所有str、str1、str2等字符串类型的,都既可以传入单个字符串,也可以传入值为字符串类型的字段。所有x、y、n都既可以传入整数类型的数值,也可以传入整数类型的字段。
“从x个字符开始y个字符长度”的描述不再是从0开始的索引,而是从1开始数,且包含起始值[x,x+y)。
函数 |
描述 |
CONCAT(str1,str2,…,strn) |
返回将多个字符串连接成一个完整的字符串的结果 |
INSERT(str1,x,y,str2) |
将字符串str1从第x个字符开始,y个字符串长度的子串替换为字符串str2 |
UPPER(str) |
将字符串str中的所有字母变成大写 |
LOWER(str) |
将字符串str中的所有字母变成小写 |
LEFT(str,x) |
返回字符串最左边的x个字符 |
RIGHT(str,x) |
返回字符串最右边的x个字符 |
LTRIM(str) |
去掉str左边的空格 |
RTRIM(str) |
去掉str右边的空格 |
LPAD(str1,n,str2) |
使用字符串str2对字符串str1最左边进行填充,直到长度为n个字符长度 |
RPAD(str1,n,str2) |
使用字符串str2对字符串str1最右边进行填充,直到长度为n个字符长度 |
REPEAT(str,x) |
返回字符串str重复x次的结果 |
REPLACE(str,a,b) |
使用字符串b替换字符串str中所有出现的字符串a |
STRCMP(str1,str2) |
比较字符串str1和str2,如果相同会返回0,不同会返回-1。 |
TRIM(str) |
去掉字符串行头和行尾的空格 |
SUBSTRING(str,x,y) |
返回字符串str中从x位置起y个字符串长度的字符串 |
ʚʕ̯•͡˔•̯᷅ʔɞ日期和时间函数
函数 |
描述 |
NOW() |
返回当前时间,格式为YYYY-MM-DD HH:MM:SS ,返回值数据类型为DATETIME |
DATE(DATETIME) |
参数为DATETIME类型的数据或字段,返回值格式为YYYY-MM-DD,返回值数据类型为DATE类型 |
TIME(DATETIME) |
参数为DATETIME类型的数据或字段,返回值格式为HH:MM:SS,返回值数据类型为TIME类型 |
YEAR(DATETIME) |
参数为DATETIME类型的数据或字段。返回一个数值,某年。该数值可直接拿去参与计算。 |
MONTH(DATETIME) |
参数为DATETIME类型的数据或字段。返回一个数值,某月。该数值可直接拿去参与计算。 |
DAY(DATETIME) |
参数为DATETIME类型的数据或字段。 返回一个数值,某日。该数值可直接拿去参与计算。 |
------------------------ |
-------------- |
CURRENT_DATE() |
无参数,返回当前日期,YYYY-MM-DD格式,相当于DATE(NOW()) |
CURRENT_TIME() |
无参数,返回当前时间,HH:MM:SS格式,相当于TIME(NOW()) |
CURRENT_TIMESTAMP() |
无参数,相当于now() |
------------------------ |
------------- |
ADDTIME(t1,t2) |
返回两个时间相加的和,参数t1,t2为DATETIME类型的数值或字段,如果结果大于24小时,则会不会跳转到下一天,会存在25:00:00的结果。 |
DATE_ADD(t1,T) |
返回DATETIME类型的数值或字段滞后一定时间后的结果,结果为DATETIME类型,T的格式见下方示例 |
DATE_SUB(t1,T) |
返回DATETIME类型的数值或字段超前一定时间后的结果,结果为DATETIME类型,用法同上 |
DATEDIFF(t1,t2) |
返回t1比t2滞后的天数(t1-t2),参数可以是YYYY-MM-DD HH:MM:SS,也可以是YYYY-MM-DD,也可以是介于其之间的格式(必须有DD。) |
DATE_ADD(t1,T)与DATE_SUB(t1,T)示例
SELECT DATE_ADD(now(),interval 1 DAY);
SELECT DATE_ADD(now(),interval 1 MONTH);
SELECT DATE_ADD(now(),interval 1 YEAR);
SELECT DATE_ADD(now(),interval 1 hour);
SELECT DATE_ADD(now(),interval 1 minute);
SELECT DATE_ADD(now(),interval 1 second);
SELECT DATE_SUB(now(),interval 1 DAY);
SELECT DATE_SUB(now(),interval 1 MONTH);
SELECT DATE_SUB(now(),interval 1 YEAR);
SELECT DATE_SUB(now(),interval 1 hour);
SELECT DATE_SUB(now(),interval 1 minute);
SELECT DATE_SUB(now(),interval 1 second);
SELECT DATEDIFF('2022-02-07','2021-12-01');
SELECT DATEDIFF('2022-02-07 12:00','2021-12-01 12:00');
SELECT DATEDIFF(DATE_ADD(now(),interval 1 day),now())
ʚʕ̯•͡˔•̯᷅ʔɞ其他函数
函数 |
描述 |
IF(expr,μ1,μ2) |
条件判断函数,如果expr成立则执行μ1,否则执行μ2 |
IFNULL(μ1,μ2) |
如果μ1不为空则返回μ1,否则返回μ2 |
VERSION() |
获取MySQL版本号 |
示例
select if(score>85,'优秀','普通') from table1;