MySQL-系统函数

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;

你可能感兴趣的:(mysql,数据库,database)