内置函数

函数概念: MySQL 数据库为我们提供了大量内置函数。这些内置函数可以帮助用户更加方便的处理表中的数据。这里说的函数和我们编程语言中的方法或函数的作用很类似,都是为了完成某个特定的功能而存在。

函数特点:

  • 共享性、高效性、健壮性

在数据库中,函数通常分为单行函数与多行函数两类

内置函数 1.png

单行函数: 将每一条记录作为输入值进行计算,得到每条记录对应的结果。如:字符串函数、数值函数、日期时间函数等。

多行函数: 将多条记录作为输入值进行计算,得到单个结果。如:最大值函数、求和函数、统计函数等。

字符串、数值、日期时间函数

字符串函数

用的字符串函数,函数括号内为参数

函数说明
lower(str)将输入的字符串全部转换为小写
upper(str)将输入的字符串全部转换为大写
concat(str1,str2)将字符串 str1 和 str2 首尾连接后返回
substr(str,m[,n])获取字符串中指定的子串,该子串从 m 位置开始获取,取 n 个字符,如果 n 被忽略,则取到字符串结尾处
length(str)返回字符串的长度
instr(str,substr)从字符串 str 中返回子串 substr 第一次出现的位置
lpad(str1,n,str2)在字符串 str1 的左边使用字符串 str2 进行填充,直到总长度达到 n 为止
rpad(str1,n,str2)在字符串 str1 的右边使用字符串 str2 进行填充,直到总长度达到 n 为止
replace(str,old_str,new_str)在字符串 str 中查找所有的子串 old_str,使用 new_str 替换,并返回替换后的结果
repeat(str,count)将字符串 str 重复 count 次,并返回重复后的结果
reverse(str)将字符串 str 反转,返回反转后的结果
  1. lower(str):将输入的字符串全部转换为小写

    SELECT LOWER('JAVA');
    

    lower.png

  2. concat(str1,str2):将字符串 str1 和 str2 首尾连接后返回。

    SELECT CONCAT('Lo','ve');
    

    concat.png

  3. substr(str,m,n):获取字符串中指定的子字符串,从 m 位置开始,取 n 个字符,如果 n 被忽略,则取到字符串结尾处。

    SELECT SUBSTR('MySQL',3,3);
    

    substr.png

    注意: 第一个字符的起始位置是 1,不是 0

  4. length(str):返回字符串的长度。

    SELECT LENGTH('MySQL');
    

    length.png

  5. instr(str,substr):从字符串 str 中返回子串 substr 第一次出现的位置。

    SELECT INSTR('MySQL','SQL');
    

    instr.png

  6. lpad(str1,n,str2):在字符串 str1 的左边使用字符串 str2 进行填充,直到总长度达到 n 为止。

    SELECT LPAD('MySQL',10,'>');
    

    lpad.png

  7. replace(str,old_str,new_str):在字符串 str 中查找所有的子串 old_str,使用 new_str 替换,并返回替换后的结果。

    SELECT REPLACE('MyAndStuentnd','nd','ND');
    

    replace.png

  8. repeat(str,count):将字符串 str 重复 count 次,并返回重复后的结果。

    SELECT REPEAT('MySQL',3);
    

    repeat.png

  9. reverse(str):将字符串 str 反转,返回反转后的结果。

    SELECT REVERSE('MySQL');
    

    !reverse.png

数值函数

数值函数用来处理数值方面的运算,能够提高用户的工作效率。常用的数值函数如下表所示,函数括号内为输入的参数。

函数说明
abs(num)返回 num 的绝对值
ceil(num)返回大于 num 的最小整数值
floor(num)返回小于 num 的最大整数值
mod(num1,num2)返回 num1 对 num2 进行模运算结果
rand()返回 0 到 1 内的随机值
round(num,n)返回 num 的四舍五入的 n 位小数的值
truncate(num,n)返回数字 num 截断为 n 位小数的结果
sqrt(num)返回 num 的平方根
  1. abs(num):返回 num 的绝对值。

    SELECT ABS(-100);
    

    abs.png

  2. ceil(num):返回大于num的最小整数

    SELECT CEIL(6.2);
    

    celi1.png

    SELECT CEIL(-6.2);
    

    celi2.png

  3. floor(num):返回小于 num 的最大整数值。

    SELECT FLOOR(6.2);
    

    floor1.png

    SELECT FLOOR(-6.2);
    

    floor2.png

  4. mod(num1,num2):返回 num1 对 num2 进行模运算结果。

    SELECT MOD(6,4);
    
    +----------+
    | mod(6,4) |
    +----------+
    |        2 |
    +----------+
    1 row in set (0.00 sec)
    
  5. rand():返回 0 到 1 内的随机值。

    SELECT RAND();
    
    +---------------------+
    | rand()              |
    +---------------------+
    | 0.9824345772922362 |
    +---------------------+
    1 row in set (0.00 sec)
    
  6. round(num,n):返回 num 的四舍五入的 n 位小数的值。

    SELECT ROUND(6.1548,3);
    
    +-----------------+
    | SELECT ROUND(6.1548,3) |
    +-----------------+
    |    6.155 |
    +-----------------+
    1 row in set (0.00 sec)
    
  7. truncate(num,n):返回数字 num 截断为 n 位小数的结果。

    SELECT TRUNCATE(6.1548,3);
    
    +--------------------+
    | SELECT TRUNCATE(6.1548,3) |
    +--------------------+
    |               6.154 |
    +--------------------+
    1 row in set (0.00 sec)
    
  8. sqrt(num):返回 num 的平方根。

    SELECT SQRT(4);
    
    +----------+
    | sqrt(4) |
    +----------+
    |        2 |
    +----------+
    1 row in set (0.00 sec)
    

转换函数

通用函数

多行函数(组函数)