Mysql函数
mysql提供了功能众多强大、方便易用的函数。使用这些函数,可以极大提高用户对数据库的管理效率。Mysql中的函数包括:数学函数、字符串函数、日期和时间函数,条件判断函数、系统信息函数和加密函数等其他函数。
数学函数
数学函数主要用来处理数据,主要的数学函数有;绝对值函数。三角函数、对数函数、随机函数等。在有错误发生的时候,数学函数会返回一个null空值。
1.SELECT ABS(2),ABS(-3.3),ABS(-33);
- 返回圆周率的值
2.select pi();
3.SQRT(X)返回非负数的x的二次平方根
- SELECT SQRT(9),SQRT(3),SQRT(-1);
负数没有平方根,所以返回null
4.MOD(x,y)返回x被y除后的余数,MOD()对带有小数部分部队数值也起作用,它返回除法运算后的精确余数
- SELECT MOD(32,5),MOD(78,6),MOD(45.5,6);
5.获取整数的函数CEIL(X),CEILING(X)和FLOOR(X)\ - SELECT CEIL(-4.45),CEILING(3.45);
- SELECT FLOOR(-4.45),FLOOR(4.45);
- 6.获取随机数的函数RAND()和RAND(X)
- SELECT RAND(),RAND(),RAND();
- 可以看到,不带参数的RAND(X)函数产生的随机数是不同的
使用RAND(X)函数来产生随机数,输入语句如下:
- SELECT RAND(10),RAND(12),RAND(12);
- 可以看到当RAND(X)参数相同时,所产生的随机数一样。
7.函数ROUND(X)ROUND(X,Y),TRUNCATE(X,Y) - SELECT ROUND(-1.25)ROUND(1.5,2.6),TRUNCATE(1.8,1.9)
- 可以看到ROUND(X)只保留了整数部分,ROUND(X,Y)保留了 y四舍五入的位数3,TRUNCATE(1.8,1.9)保留小数后两位
8.符号函数(sign(x))
使用sign(x)函数返回参数的符号
- SELECT SIGN(-21),SIGN(21),SIGN(22);
9.幂运算函数POW(X,Y),POWER(X,Y),EXP(X)
- SELECT POW(2,2),POWER(2,2),EXP(3),EXP(-3);
- 可以看到POW(X),POWER(x)的结果是一样的
10.对数运算函数LOG(X)LOG10(X) - SELECT LOG(3),LOG10(-3);
由数学知识可知,对数定义域不能为负数,所以结果返回null;
11.角度与弧度相互转换的函数
使用RANDIANS将角度转化为弧度
- SELECT RADIANS(90),RADIANS(180);
- 12.使用正弦函数 sin(x)和反正弦函数asin(x)
sin(x)返回正弦值,其中x为弧度值。 - select SIN(X),ROUND(SIN(PI());
- 使用ASIN(X)计算反正弦值,输入语句如下
- select ASIN(0.8414709848078965);
13.余弦函数COS(X),ACOS(X)
COS(X)返回x的余弦,其中x为弧度值
- select cos(0),cos(pi()),cos(1);
- 使用ACOS(X)计算反余弦值
- SELECT ACOS(0.5403023058681398);
- 14.正切函数、反正切函数和余切函数
- SELECT TAN(0.4);
- SELECT ATAN(0.4227932187381618);
- SELECT COT(0.4);
字符串函数
1.将字符串参数值转换为全小写字母后返回:LOWER(column|str)
- select lower(‘SQL yod’);
- 2.将字符串参数值转换为全大写字母后返回:UPPER(column|str)
- select upper(‘SQL yod’);
- 3.将多个字符串参数首尾相连后返回:CONCAT(column|str1, column|str2,…)
- select concat(‘My’,‘yod’,‘QL’);
- 如果有任何参数为null,则函数返回null
- select concat(‘My’,‘null’,‘QL’);
- 如果参数是数字,则自动转换为字符串
- select concat(1.4,‘mysql’);
4.将多个字符串参数以给定的分隔符separator首尾相连后返回:CONCAT_WS(separator,str1,str2,…)
- select concat_ws(’*’,'First ','Second ',‘Third’);
5.从源字符串str中的指定位置pos开始取一个字串并返回:SUBSTR(str,pos[,len])
- select substring(‘hello world’,3);
- 6.返回字符串的存储长度:LENGTH(str)
- select length(‘thello world’),length(‘你好’);
- 7.从源字符串str中返回子串substr第一次出现的位置:INSTR(str, substr)
- select instr(‘fhellkjdbar’,‘bar’);
- 8.返回字符串中的字符个数:CHAR_LENGTH(str)
- select char_length(‘text’),char_length(‘你好’);
- 9.在源字符串的左边填充给定的字符padstr到指定的长度len,返回填充后的字符串:LPAD(str, len, padstr)
- select lpad(‘hello’,6,’??’);
- 10.在源字符串的右边填充给定的字符padstr到指定的长度len,返回填充后的字符串
:RPAD(str, len, padstr) - 11.从源字符串str中去掉两端、前缀或后缀字符remstr并返回;如果不指定remstr,则去掉str两端的空格;不指定BOTH、LEADING、TRAILING ,则默认为 BOTH:RIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr FROM] str)
- select trim(’ baba ');
- select trim(leading ‘x’ from ‘xxxbababaxxx’);
- select trim(both ‘x’ from ‘xxxbabababxxx’);
- select trim(trailing ‘abc’ from ‘barbababbabc’);
- 12.在源字符串str中查找所有的子串form_str(大小写敏感),找到后使用替代字符串to_str替换它。返回替换后的字符串:REPLACE(str, from_str, to_str)
- select replace(‘iiii.love.you’,‘i’,‘W’);
- 13.去掉字符串的左边或右边的空格(左对齐、右对齐):LTRIM(str),RTRIM(str)
- SELECT ltrim(’ barbar ‘) le, rtrim(’ barbar ') le2;
14.将字符串str重复count次后返回:REPEAT(str, count)
- select repeat(‘My’,3);
- 15.将字符串str反转后返回:REVERSE(str)
- select reverse(‘abfgasfaf’);
- 16.将每个参数N解释为整数(字符的编码),并返回每个整数对应的字符所构成的字符串(NULL值被忽略):CHAR(N,… [USING charset_name])
- select char(77,121,83,81,45,‘76’),char(77,77.3,‘77.3’);
- 17.FORMAT(X,D[,locale])
- SELECT format(12332.2,2,‘abc_d’);
18.返回由N个空格构成的字符串:SPACE(N)
- select space(5);
- 19.返回最左边的len长度的子串:LEFT(str, len)
- select left(‘djahsjdfhkjhaj’,5);
- 20.返回最右边的len长度的子串:RIGHT(str, len)
- select right(‘chidsajdhjfhajdd’,5);
- 21.果两个字符串是一样的则返回0;如果第一个小于第二个则返回-1;否则返回1:STRCMP(expr1,expr2)