MySQL中的函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数和加密函数等。
1.绝对值函数ABS(x)
2.返回圆周率的函数PI()
3.平方根函数SQRT(x)
4.求余函数MOD(x,y)
5.获取整数的函数CEIL(x),CEILING(x)和FLOOR(x)
(CEIL(x)和CEILING(x)的意义相同,返回不小于x的最小整数值,返回 值转化为一个BIGINT。 FLOOR(x)返回不大于x的最大整数值,返回值转化为一个BIGINT。)
6.获取随机数的函数RAND()和RAND(x)
7.函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)
ROUND(x)返回最接近于参数x的整数,对x值进行四舍五入。
ROUND(x,y)返回最接近于参数x的数,其值保留到小数点后面y位,若y为负值,则将保留x值到小 数点左边y位。
TRUNCATE(x,y)返回被舍去至小数点后y位的数字x。若y的值为0,则结果不带有小数点或不带有小数部分。若y设为负数,则截(归零)x小数点左起第y位开始后面所有低位的值。
8. 符号函数SIGN(x)
SIGN(x)返回参数的符号,x的值为负、零或正时返回结果依次为-1、0或1。
7. 幂运算函数POW(x,y)、POWER(x,y)和EXP(x)
POW(x,y)或者POWER(x,y)函数返回x的y次乘方的结果值。 EXP(x)返回e的x乘方后的值。、
--数学函数 结果显示
--绝对值函数
select abs(-2); --2
select abs(0); --0
--返回圆周率PI
select PI(); --3.141593
--平方根函数SQRT
select SQRT(9); --3
--求余函数mod(x,y)
select mod(7,2) --1
--获取整数
select CEIL(5.4) --6
select CEILING(5.6) --6
select FLOOR(5.5) --5
--获取随机数
select RAND(); --0.5853688005221717
select CEIL(RAND()*66); --23
--幂函数
select POW(3,3); --27
--估读(四舍五入)
select ROUND(5.4); --5
select ROUND(5.5); --6
1.计算字符串字符数的函数和字符串长度的函数 CHAR_LWNGTH(str) 返回值为字符串str所包含的字符个数。
2.合并字符串函数CONCAT(s1,s2...)
3.替换字符串函数INSERT(s1,x,len,s2) 返回字符串 s1,子字符串起始于 x 位置,并且用 len 个字符长的字符串代替 s2。
4.字母大小写转换
LOWER (str)或者LCASE (str)可以将字符串str中的字母字符全部转换成小写字母。
UPPER(str)或者UCASE(str可以将字符串str中的字母字符全部转换成大写字母。
5.获取指定长度的字符串的函数LEFT(s.n),RIGHT(s,n)
6.填充字符串的函数LPAD(s1,len,s2)
函数将字符串s2填充到s1的开始处,使字符串的长度达到len,然后返回字符串s1。如果字符串s1的长度大于len,则返回值被缩短至len字符长度。
7.删除空格的函数LTRIM(s)、RTRIM(s)、TRIM(s)
8.重复生成字符串的函数REPEAT(s,n)
9.比较字符串大小的函数STRCMP(s1,s2)
10.获取子字符串的函数SUBSTRING(s,n,len)
11.字符串逆序的函数REVERSE(s)
12 匹配子串开始位置的函数 LOCATE(str1,str)
--返回字符串长度 结果显示
SELECT CHAR_LENGTH("helloworld"); --10
--字符串的拼接
SELECT CONCAT ("HELLO","-","WORLD"); --HELLO-WORLD
-- 查找hello,再后面的字符串列表中的位置 从 1 开始
SELECT FIELD('hello','你好','延安','helloworld'); --0
SELECT FIND_IN_SET('hello','你好,延安,hello,world') --3
--从第6个开始4个长度替换为ab
SELECT INSERT("HELLOWORLD",6,4,"AB"); --HELLOABD
--检索world在helloworld中出现的位置
SELECT LOCATE ("WORLD","HELLOWORLD"); --6
--截取字符串 左截取,右截取
SELECT LEFT("HELLOWORLD",5); --HELLO
SELECT RIGHT("HELLOWORLD",5); --WORLD
-- 从第6个位置开始截取到最后
SELECT SUBSTR('helloworld',6); --world
-- 从第6个位置开始截取三个长度
SELECT SUBSTR('helloworld',6,3); --wor
SELECT NOW();
SELECT SYSDATE();
SELECT CURDATE(); -- 年月日
SELECT CURRENT_DATE(); -- 年月日
SELECT CURRENT_TIME; -- 时分秒
SELECT CURTIME(); -- 时分秒
--adddte()加上天数
select adddate(now(),30) --加30天
select adddate("2000-01-01 11:11:11",interval 5 minute) --加5分钟
select adddate("2000-01-01 11:11:11",interval 5 month) --加5个月
select adddate("2000-01-01 11:11:11",interval 5 year) --加5年
--datediff()相差天数
select datediff("2022-06-06","2022-05-07") --两个时间相差天数
date_sub 减去天数
select date_sub("2022-06-06",interval 7 day) --减去7天
select date_sub("2022-06-06",interval 7 month) --减去7月
select date_sub("2022-06-06",interval 7 year) --减去7年
select month("2022-06-06") --获取月份 6
select monthname("2022-06-06") --获取月份名 june
select day("2022-06-06") --获取天数
select year("2022-06-06") --过去年份
--date_format 日期格式化
select date_format(now(),"%y年%m月%d日 %H点%i分%s秒")
--if(条件,v1,v2)函数
--如果条件判断为TRUE,返回v1;如果条件判断为FALSE则返回为v2
select salary ,if(salary>3000,"高工资","低工资") from employees
--ifnull(v1,v2)函数
--加入v1不为null,返回值为v1;否则返回v2
SELECT manager_id,IFNULL(manager_id,'无上级领导') FROM employees
--case 函数
SELECT salary,
CASE salary WHEN 24000 THEN '高工资'
WHEN 17000 THEN '基本工资'
END
FROM employees;