mysql常见的函数(整理)
数值型函数
数值型函数返回的均是数字,而不是字符串。
rand()函数
作用:随机生成一个0-1之间的随机数,传入整数参数是用来产生重复序列。
说明:传入整数参数是用来产生重复序列:也就是随机种子。
实例:
-
不传入参数,即随机生成一个0-1之间的随机数,输入语句:
SELECT rand() AS 随机数A, rand() AS 随机数B; -
传入参数,即按照传入参数作为种子生成随机数,种子相同,则随机数相同,输入语句:
SELECT rand(1) AS 随机数A, rand(1) AS 随机数B;
round()函数
作用:round对传入参数进行四舍五入,可以指定保留的小数位数。
说明:round(需要被四舍五入的值, [取整几位数])必须传入需要被四舍五入的值,可以在第二个值中设置取整几位数,需要注意的是,取整几位数指定的是保留的小数位数,与整数部分无关。
实例:输入语句:SELECT round(3.14159) AS 取整,round(3.14159, 1) AS 取整1位小数, round(3.14159,2) AS 取整两位小数;

mod()函数
作用:求余数。
说明:必须传入两个值,值1是被除数,值2是除数:mod(被除数, 除数)。mysql中允许对浮点数取模。
实例:输入语句:SELECT mod(10,3) AS 整数取模, mod(10.3,3) AS 浮点数取模;

abs()函数
作用:求绝对值。
说明:传入一个参数,返回该参数的绝对值:abs(欲被求绝对值的数)。mysql中允许对浮点数取模。
实例:输入语句:SELECT abs(-100) AS 整数取绝对值, abs(-10.1) AS 浮点数取绝对值;

sign()函数
作用:返回参数的符号。
说明:只可以传入一个参数:sign(参数)。负数返回-1;正数返回1;0返回0。与是否是浮点数/整数无关(即允许对浮点数取符号)。
实例:输入语句:SELECT sign(-100) AS 负数符号, sign(100) AS 正数符号, sign(0) AS 0符号;

字符串函数
length()函数
作用:计算字符串长度函数,返回字符串的字节长度。
说明:只可传入一个值,即判断长度的字符串:length(值)。返回值是数值类型(整数类型)。返回的是字节长度,比如在utf-8下,1个汉字字符是3个字节字符;数值类型会先隐式转换为字符串,再求字节长度。
实例:输入语句:SELECT length('江苏财会职业学院');

concat()函数
作用:合并字符串函数,返回的结果为连接参数所产生的字符串,参数可以是一个或者多个。
说明:参数可以是一个或者多个。数值类型会先隐式转换为字符串,再拼接为字符串。
实例:输入语句:SELECT concat('江苏财会职业学院', 2025, '年', 60, '周年校庆!') AS 拼接字符串;

lower()函数
作用:将字符串中的字母转为小写。
说明:只可以传入一个参数(即一个字符串)。数值类型会先隐式转换为字符串,再参与函数逻辑。
实例:输入语句:SELECT lower('HELLO, WORLD!') AS 字符串转小写;

upper()函数
作用:将字符串中的字母转为大写。
说明:同lower()函数。
实例:输入语句:SELECT upper('hello, world!') AS 字符串转大写;

left()函数
作用:从左侧截取字符串,返回字符串左边的若干个字符。
说明:left(字符串, 长度),长度必须传入,意味截取从左数的第x个字符。长度是字符长度,不是字节长度。 如果指定的长度超过字符串实际长度,会返回整个字符串(不会报错)。如果长度为 0 或负数,返回空字符串。
实例:输入语句SELECT left('江苏财会职业学院', 4) AS 左侧截取字符串;

right()函数
作用:从右侧截取字符串,返回字符串右边的若干个字符。
说明:同left()函数,左边换成右边。
实例:输入语句SELECT right('江苏财会职业学院', 4) AS 右边侧截取字符串;

trim()函数
作用:删除字符串左右两侧的空格。
说明:只可以传入一个值,即字符串。不会删除中间的空格。
实例:输入语句:SELECT trim(' 江苏财会 职业学院 ') AS 删除字符串左右两侧的空格;

补充:trim()函数还有两种变体用法:
| 说明 | 作用 |
|---|---|
\trim(LEADING FROM 字符串)\ |
只删除左侧空格 |
\trim(TRAILING FROM 字符串)\ |
只删除右侧空格 |
输入语句SELECT trim(LEADING FROM ' 我是一只猫 ') AS 删除左侧空格, trim(TRAILING FROM ' 我是一只猫 ') AS 删除右边空格;

insert()函数
作用:替换字符串函数。
说明:必须传入四个参数:INSERT(原字符串, 开始位置, 替换长度, 新字符串)。其中开始位置数值必须小于等于字符串长度。替换长度可以为负数,但不推荐使用,不同版本结果可能不同,不同数据库(其他关系型数据库)也可能不同。
实例:输入语句 SELECT insert('江苏财会职业学院', 1, 6, '连云港职业技术') AS 替换字符串;

replace()函数
作用:替换字符串函数。返回替换后的新字符串。
说明:必须传入三个参数,即原始字符串,需要被替换的字符串,改成的字符串。replace(原始字符串, 需要被替换的字符串, 改成的字符串)。
实例:输入语句 SELECT replace('我是一只猫,快乐的星猫', '猫', '狗') AS 替换字符串;

substring()函数
作用:截取字符串,返回从指定位置开始的指定长度的字符串。
说明:必须传入三个参数,即原始字符串,开始位置,截取长度。substring(原始字符串,开始位置, 截取长度)。开始位置开始位置数值必须小于等于字符串长度。截取长度可以为负数,但不推荐使用,不同版本结果可能不同,不同数据库(其他关系型数据库)也可能不同。
实例:SELECT substring('看落花舞动拂过了少女指尖', 2, 4) AS 截取字符串;

reverse()函数
作用:字符串反转(逆序)函数返回与原始字符串顺序相反的字符串。
说明:只可以传入一个函数,即目标字符串。
实例:SELECT reverse('信息工程学院');

日期和时间函数
curdate()函数
作用:返回mysql服务端的日期值。
说明:不需要传入参数。返回的是形如 YYYY-MM-DD的日期(日期)。
实例:SELECT curdate();

curtime()函数
作用:返回mysql服务端的时间值。
说明:不需要传入参数。返回的是形如 HH:MM:SS的时间(时间)。
实例:SELECT curtime();

now()函数
作用:返回mysql服务端的含有日期的时间值。
说明:不需要传入参数。返回的是形如 YYYY-MM-DD HH:MM:SS的时间(日期和时间)。
实例:SELECT now();

month()函数
作用:获取指定日期中的月份。
说明:传入一个参数,日期和时间型参数,自动分离月份。可以传入日期、传入含有日期的时间。如果传入的是时间(形如HH:MM:SS的时间),则mysql会将其隐式转换为完整的时间(形如YYYY-MM-DD HH:MM:SS),由于缺少相关数据,则会错误获取月份。
实例:SELECT month(curdate()) AS 传入日期, month(now()) AS 传入含有日期的时间;

monthname()函数
作用:获取指定日期中的月份的英文。
说明:传入一个参数,日期和时间型参数,自动分离月份。可以传入日期、传入含有日期的时间。如果传入的是时间(形如HH:MM:SS的时间),则mysql会将其隐式转换为完整的时间(形如YYYY-MM-DD HH:MM:SS),由于缺少相关数据,则会错误获取月份。
实例:不举例了,和month()函数一样。
dayname()函数
作用:获取指定日期中的日期所属星期的英文。
说明:传入一个参数,日期和时间型参数,自动分离所属星期。可以传入日期、传入含有日期的时间。如果传入的是时间(形如HH:MM:SS的时间),则mysql会将其隐式转换为完整的时间(形如YYYY-MM-DD HH:MM:SS),由于缺少相关数据,则会错误获取所属星期。
实例:不举例了,和month()函数一样。
year()函数
作用:获取日期中的年份。
说明:返回的是年份的整数类型数字,可直接参与数学运算,形如YYYY。可以传入日期、传入含有日期的时间。如果传入的是时间(形如HH:MM:SS的时间),则mysql会将其隐式转换为完整的时间(形如YYYY-MM-DD HH:MM:SS),由于缺少相关数据,则会错误获取年份。
实例:不举例了,和month()函数一样。
聚合函数
max()函数
作用:查询指定列的最大值。
说明:可以传入字符串型、日期型,按照按字母顺序(字典序)或者时间先后比较。
min()函数
作用:查询指定列的最小值
说明:可以传入字符串型、日期型,按照按字母顺序(字典序)或者时间先后比较。
count()函数
作用:统计查询结果的行数。
说明:只可以传入一个参数:可以是字段名、* 或常量。统计指定表达式的非 NULL 行数。如果是复合主键,可以传入*(但不是只有复合主键才可以使用count(*)),自动统计出现了多少行记录,count(*) 统计表中所有行的数量,不忽略任何行(包括字段值为 NULL的行)。
sum()函数
作用:求和,返回指定列的总和。
说明:只可传入一个参数,必须为:数值类型的字段,或者表达式,不可以传入非数值型的数据。
avg()函数
作用:求平均值,返回指定列数据的平均值。
说明:只可传入一个参数,必须为:数值类型的字段,或者表达式,不可以传入非数值型的数据。如果需要四舍五入小数部分,可以联合使用round()函数。

