Mysql函数

mysql提供了功能众多强大、方便易用的函数。使用这些函数,可以极大提高用户对数据库的管理效率。Mysql中的函数包括:数学函数、字符串函数、日期和时间函数,条件判断函数、系统信息函数和加密函数等其他函数。

数学函数

数学函数主要用来处理数据,主要的数学函数有;绝对值函数。三角函数、对数函数、随机函数等。在有错误发生的时候,数学函数会返回一个null空值。

1.SELECT ABS(2),ABS(-3.3),ABS(-33);

  • 返回圆周率的值
    2.select pi();

Mysql 函数 数据库group mysql数据库函数有哪些_mysql


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’);
  • Mysql 函数 数据库group mysql数据库函数有哪些_java_02

  • 如果有任何参数为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’);

Mysql 函数 数据库group mysql数据库函数有哪些_mysql_03


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 ');
  • Mysql 函数 数据库group mysql数据库函数有哪些_java_04

  • select trim(leading ‘x’ from ‘xxxbababaxxx’);
  • select trim(both ‘x’ from ‘xxxbabababxxx’);
  • Mysql 函数 数据库group mysql数据库函数有哪些_mysql_05

  • 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;

Mysql 函数 数据库group mysql数据库函数有哪些_java_06


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);
  • Mysql 函数 数据库group mysql数据库函数有哪些_mysql_07

  • 19.返回最左边的len长度的子串:LEFT(str, len)
  • select left(‘djahsjdfhkjhaj’,5);
  • 20.返回最右边的len长度的子串:RIGHT(str, len)
  • select right(‘chidsajdhjfhajdd’,5);
  • Mysql 函数 数据库group mysql数据库函数有哪些_字符串_08

  • 21.果两个字符串是一样的则返回0;如果第一个小于第二个则返回-1;否则返回1:STRCMP(expr1,expr2)