一.mysql函数
mysql提供了众多功能强大的、方便使用得当函数。使用这些函数,可以极大的提高用户对于数据库的管理效率。mysql中的函数包括:数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数等。
函数表示对输入参数值返回一个具有特定关系的值,mysql提供了大量丰富的函数,在进行数据库管理以及数据的查询和操作时将会经常使用到各种函数。通过对数据的处理,数据库的功能可以变的更加的强大,以满足不同用户的需求。
二.数学函数
1.绝对值函数 ABS(x)
ABS(X)返回数据X的绝对值
2.返回圆周率的函数 PI()
PI()返回的是圆周率Π的值,默认的是显示小数位数是后六位。
3.平方根函数 SQRT(X)
SQRT(X)返回的是X的二次方根的值。X必须是非负数,否则返回的是NULL。
4.求余函数 MOD(X,Y)
MOD(X,Y)返回的是X被Y除以后的余数,MOD(X,Y)对于带有小数的数值也起作用,返回除法运算后的精确余数。
5.取整数的函数 CEIL(x)、CEILING(x)、FLOOR(X)
CEIL(X),CEILING(x)两个函数的意义相同,都是返回大于数值X的最小整数,返回值转化为BIGINT类型。
FLOOR(x)函数是返回小于数值x的最大整数,返回值转化为BIGINT类型。
6.获取随机数 RAND()、RAND(x)
RAND()返回的是一个随机的在0~1之间的一个随机浮点数。
RAND(X)返回的是一个随机的在0~1之间的一个随机浮点数,但是如果X相同时,返回相同的浮点数,用来产生重复序列。
7.ROUND(x)、ROUND(x,y)
ROUND(x)返回数值x的最接近X的数值。对数值进行四舍五入。
ROUND(x,y)返回数值x的最接近x的数值,如果是带有小数的数,保留小数点后y位。若y为负数,那么保留小数点前面整数位第几位。
8.TRUNCATE(x,y)
TRUNCATE(x,y)函数返回的是数值x精确到小数点后几位的数,不进行四舍五入,这是和ROUND函数的区别。如果y是负数的话,那么直接将小数点前y位归零并输出显示。
9.符号函数 SIGN(x)
SIGN(x)函数返回的是x的符号,如果数值x是正数,返回1;负数返回-1;0返回0。
10.幂函数运算 POW(x,y)、POWER(x,y)、EXP(x)
POW(x,y)和POWER(x,y)返回的是x的y次方的结果值。
EXP(x)返回的是e的x次方的值。
11.各种函数运算 余弦函数、正弦函数、正切函数等
三.字符串函数
1.计算字符串字符数、计算字符串长度的函数 CHAR_LENGTH(X)、LENGTH(x)
CHAR_LENGTH(x)返回的是字符串的字符数,一个多字节字符算作一个单字符,比如一个汉字占2个字符但是算作一个单字符。
LENGTH(x)返回的是字符串的长度,一个汉字是2个字节,一个数字或者一个字母是一个字符。
2.合并字符串 CONCAT(s1,s2,...)、CONCAT_WS(x,s1,s2,...)
CONCAT(s1,s2,...)返回的结果是,将s1到sn这些字符串连接以后的字符串,任何一个参数为NULL时,返回为NULL。
CONCAT_WS(x,s1,s2,...)返回的结果是,以x为后面跟的参数的连接符号,然后连接输出字符串。如果分隔符为NULL,则返回结果为NULL;如果后面的参数有NULL时,则会忽略NULL值输出。
3.替换字符串函数 INSERT(s1,x,len,s2)
INSERT(s1,x,len,s2)返回的是:将s1从第x个字符开始之后长度为len的字符替换为s2以后的字符串。
如果 x > len(s1),那么原字符串输出;如果 x < len(s1) AND len <= len(s2),输出替换后的字符串;如果 len > len(s2),那么从x处开始替换。
4.小写字母的转换 LOWER(str)、LCASE(str)
LOWER(str)和LCASE(str)意义是一样的,都是将字符串中的大写字母替换成小写字母。
5.大写字母的转换 UPPER(str)、UCASE(str)
UPPER(str)和UCASE(str)意义是一样的,都是将字符串中的小写字母替换成大写字母。
6.获取指定长度的字符串 LEFT(str,n)、RIGHT(str,n)
LEFT(str,n)返回的是:字符串从左边开始到第n个字符之间的字符。
RIGHT(str,n)返回的是:字符串从右边第n个字符开始到str结束的之间的字符。
7.填充字符串函数 LPAD(s1,len,s2)、RPAD(s1,len,s2)
LPAD(s1,len,s2)RPAD(s1,len,s2) 返回的是:如果s1长度不足len的时候,自动用s2在 左边右边 补足len的长度,然后输出;如果s1刚好等于len,那么直接输出s1;如果len小于s1的时候,就相当于是获取指定长度的字符串,但是都是从左边开始截取。
8.删除空格的函数 LTRIM(s)、RTRIM(s)、TRIM(s)
LTRIM(s)返回的是删除字符串左边全部空格以后的字符串,RTRIM(s)返回的是删除字符串右边全部空格以后的字符串,TRIM(s)返回的是删除字符串左右两边的全部空格以后的字符串。
9.删除指定的字符串的函数 TRIM(s FROM s1)
TRIM(s FROM s1)返回的是:删除s1中的指定的、在s1两端的、指定的字符串s,以后返回的字符串。如果 s FROM 不存在,则表示删除左右两边的空格然后输出字符串。
10.重复生成字符串的函数 REPEAT(str,n)
REPEAT(str,n)返回的是:重复n遍输出的字符串。如果n等于0,返回一个空的字符串;如果n或者str为null,返回NULL。
11.空格函数 SPACE(n)
SPACE(n)返回的是由n个空格组成的字符串。
12.替换函数 REPLACE(s,s1,s2)
REPLACE(s,s1,s2)返回的是:将字符串s中的s1用s2替换后返回的字符串。
13.比较字符串大小的函数 STRCMP(s1,s2)
STRCMP(s1,s2)返回的是:如果 s1 > s2,返回1;如果 s1 < s2,返回-1;如果 s1 = s2,返回0。
比较的规则是:依次一个字母数字的比较,如果第一个比较出大小之后,直接返回值,不再进行比较。如果第一个没有比较出来的话,会接着按顺序比较后面的。
14.获取字串的函数 SUBSTRING(s,n,len)、MID(s,n,len)
SUBSTRING(s,n,len)和MID(s,n,len)意义是一样的,返回的是字符串s从第n个字符开始的,之后的长度为len的字符串。
15.匹配字串开始的位置的函数 LOCATE(str,str)、POSITION(str IN str)、INSTR(str,str)
LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1)意义是一样的,都是返回str1参数,在str参数内的位置。
16.字符串逆序 REVERSE(s)
REVERSE(s)返回的是:倒叙输出的字符串。
17.返回指定位置的字符串 ELT(n,str1,str2,...)
ELT(N,str1,str2,...)返回的是:N是几,就返回strN。
18.返回字串位置的函数 FIND_IN_SET(s1,s2)
如果含有一个NULL,返回值就是NULL。
四.时间日期函数
五.条件判断函数
1.IF(expr,s1,s2)
IF(expr,s1,s2)含义是:如果expr是真(即,expr <> 0 and expr <> NULL),时,返回第一个参数 s1,否则返回第二个参数s2。
2.IFNULL(s1,s2)函数
3.case函数
case函数的语法:
(1)case expr when v1 then s1 when v2 then s2 end
(2)case when v1 then s1 else rn end
六.系统信息函数
1.获取MYSQL的版本号、连接数、数据库名称的函数
2.获取用户名的函数
USER()、CURRENT_USER()、SYSTEM_USER()
七.加密函数
1.PASSWORD(str)
2.MD5(str)
3.ENCODE(str,pswd_str)
4解密函数 DECODE(encode_str,pswd_str)
八.其他函数
1.格式化函数 FORMAT(x,n)
2.不同进制间的数字进行转换的函数 CONV(N,from_base,to_base)
3.重复执行指定的操作的函数 BENCHMARK(count,expr)
可用于计算MySQL处理表达式的速度