内置函数
函数概念: MySQL 数据库为我们提供了大量内置函数。这些内置函数可以帮助用户更加方便的处理表中的数据。这里说的函数和我们编程语言中的方法或函数的作用很类似,都是为了完成某个特定的功能而存在。
函数特点:
- 共享性、高效性、健壮性
在数据库中,函数通常分为单行函数与多行函数两类
单行函数: 将每一条记录作为输入值进行计算,得到每条记录对应的结果。如:字符串函数、数值函数、日期时间函数等。
多行函数: 将多条记录作为输入值进行计算,得到单个结果。如:最大值函数、求和函数、统计函数等。
字符串、数值、日期时间函数
字符串函数
用的字符串函数,函数括号内为参数
函数 | 说明 |
---|---|
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 反转,返回反转后的结果 |
-
lower(str)
:将输入的字符串全部转换为小写SELECT LOWER('JAVA');
-
concat(str1,str2)
:将字符串 str1 和 str2 首尾连接后返回。SELECT CONCAT('Lo','ve');
-
substr(str,m,n)
:获取字符串中指定的子字符串,从 m 位置开始,取 n 个字符,如果 n 被忽略,则取到字符串结尾处。SELECT SUBSTR('MySQL',3,3);
注意: 第一个字符的起始位置是 1,不是 0
-
length(str)
:返回字符串的长度。SELECT LENGTH('MySQL');
-
instr(str,substr)
:从字符串 str 中返回子串 substr 第一次出现的位置。SELECT INSTR('MySQL','SQL');
-
lpad(str1,n,str2)
:在字符串 str1 的左边使用字符串 str2 进行填充,直到总长度达到 n 为止。SELECT LPAD('MySQL',10,'>');
-
replace(str,old_str,new_str)
:在字符串 str 中查找所有的子串 old_str,使用 new_str 替换,并返回替换后的结果。SELECT REPLACE('MyAndStuentnd','nd','ND');
-
repeat(str,count)
:将字符串 str 重复 count 次,并返回重复后的结果。SELECT REPEAT('MySQL',3);
-
reverse(str)
:将字符串 str 反转,返回反转后的结果。SELECT REVERSE('MySQL');
!
数值函数
数值函数用来处理数值方面的运算,能够提高用户的工作效率。常用的数值函数如下表所示,函数括号内为输入的参数。
函数 | 说明 |
---|---|
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 的平方根 |
-
abs(num):返回 num 的绝对值。
SELECT ABS(-100);
-
ceil(num):返回大于num的最小整数
SELECT CEIL(6.2);
SELECT CEIL(-6.2);
-
floor(num):返回小于 num 的最大整数值。
SELECT FLOOR(6.2);
SELECT FLOOR(-6.2);
-
mod(num1,num2):返回 num1 对 num2 进行模运算结果。
SELECT MOD(6,4);
+----------+ | mod(6,4) | +----------+ | 2 | +----------+ 1 row in set (0.00 sec)
-
rand():返回 0 到 1 内的随机值。
SELECT RAND();
+---------------------+ | rand() | +---------------------+ | 0.9824345772922362 | +---------------------+ 1 row in set (0.00 sec)
-
round(num,n):返回 num 的四舍五入的 n 位小数的值。
SELECT ROUND(6.1548,3);
+-----------------+ | SELECT ROUND(6.1548,3) | +-----------------+ | 6.155 | +-----------------+ 1 row in set (0.00 sec)
-
truncate(num,n):返回数字 num 截断为 n 位小数的结果。
SELECT TRUNCATE(6.1548,3);
+--------------------+ | SELECT TRUNCATE(6.1548,3) | +--------------------+ | 6.154 | +--------------------+ 1 row in set (0.00 sec)
-
sqrt(num):返回 num 的平方根。
SELECT SQRT(4);
+----------+ | sqrt(4) | +----------+ | 2 | +----------+ 1 row in set (0.00 sec)