MySQL常用函数大盘点

mysql中常用函数有哪些

时间:2025-07-08 07:02


MySQL中常用函数详解 MySQL作为广泛使用的关系型数据库管理系统,提供了丰富的内置函数,这些函数能够帮助开发者高效地进行数据处理和操作

    熟练掌握这些函数,不仅能提升数据处理的效率,还能增强数据库操作的灵活性

    本文将详细介绍MySQL中几类常用的函数,包括数学函数、字符串函数、日期和时间函数、聚合函数以及其他一些实用的函数

     一、数学函数 数学函数主要用于处理数字相关的操作,无论是整数还是小数,MySQL都提供了相应的函数来进行处理

     1.ABS(x):返回x的绝对值

    这个函数在处理数据时非常有用,特别是当你需要确保一个数值总是非负的时候

    例如,`SELECT ABS(-5);`会返回5

     2.SQRT(x):返回x的平方根

    这个函数在进行数学计算时非常常见

    例如,`SELECT SQRT(16);`会返回4,即16的平方根

     3.ROUND(x【,d】):返回x的四舍五入值,保留d位小数

    如果不指定d,则默认保留0位小数

    例如,`SELECT ROUND(4.6);`会返回5,`SELECT ROUND(4.123, 2);`会返回4.12

     4.CEIL(x)或CEILING(x):返回大于或等于x的最小整数,即向上取整

    例如,`SELECT CEIL(3.14);`或`SELECT CEILING(3.14);`都会返回4

     5.FLOOR(x):返回小于或等于x的最大整数,即向下取整

    例如,`SELECT FLOOR(4.9);`会返回4

     6.RAND():生成一个0到1之间的随机数

    如果需要生成一个范围内的随机数,可以对RAND()的结果进行相应的数学运算

    例如,`SELECT RAND();`会返回一个0到1之间的随机数

     7.TRUNCATE(x,y):返回x保留到小数点后y位的值,与ROUND函数不同的是,TRUNCATE函数不会进行四舍五入

    例如,`SELECT TRUNCATE(2.1234567,3);`会返回2.123

     8.MOD(x,y):返回x除以y的余数

    这个函数在进行除法运算时非常有用

    例如,`SELECT MOD(10,3);`会返回1,表示10除以3的余数为1

     9.POW(x,y)或POWER(x,y):计算x的y次方

    例如,`SELECT POW(2,3);`或`SELECT POWER(2,3);`都会返回8,即2的3次方

     此外,MySQL还提供了其他数学函数,如SIGN(x)返回x的符号(正数返回1,负数返回-1,0返回0),EXP(x)返回e的x次方,LOG(base,x)返回以base为底x的对数等

     二、字符串函数 字符串函数主要用于处理表中的字符串数据,如用户姓名、地址等

     1.CONCAT(s1,s2,...):将多个字符串连接成一个字符串

    这个函数在拼接字符串时非常有用

    例如,`SELECT CONCAT(Hello, ,World);`会返回Hello World

     2.SUBSTRING(s,start【,length】):从字符串s中提取子字符串,从start位置开始,长度为length(如果省略length,则提取到字符串的末尾)

    例如,`SELECT SUBSTRING(Hello World,7,5);`会返回World

     3.REPLACE(s,s1,s2):将字符串s中的s1替换为s2

    这个函数在进行字符串替换时非常有用

    例如,`SELECT REPLACE(I like MySQL,MySQL,MariaDB);`会将MySQL替换为MariaDB,返回I like MariaDB

     4.UPPER(s)和UCASE(s):将字符串s中的所有字母转换为大写

    这两个函数的功能是相同的

    例如,`SELECT UPPER(hello);`或`SELECT UCASE(hello);`都会返回HELLO

     5.LOWER(s):将字符串s中的所有字母转换为小写

    例如,`SELECT LOWER(WORLD);`会返回world

     6.LEFT(s,n):返回字符串s的前n个字符

    例如,`SELECT LEFT(hello,2);`会返回he

     7.RIGHT(s,n):返回字符串s的后n个字符

    例如,`SELECT RIGHT(hello,3);`会返回llo

     8.TRIM(s):删除字符串s左右两侧的空格

    例如,`SELECT TRIM( MySQL);`会返回MySQL

     9.LENGTH(s):返回字符串s的字节长度

    需要注意的是,LENGTH函数返回的是字节长度,而不是字符长度

    对于多字节字符集(如UTF-8),一个字符可能占用多个字节

     此外,MySQL还提供了其他字符串函数,如ASCII(s)返回字符串s的第一个字符的ASCII码,BIN(n)返回n的二进制字符串表示,BIT_LENGTH(s)返回二进制字符串s的长度等

     三、日期和时间函数 日期和时间函数主要用于处理表中的日期和时间数据,如订单日期、用户注册时间等

     1.CURDATE()或CURRENT_DATE():返回当前系统的日期值

    这两个函数的功能是相同的

    例如,`SELECT CURDATE();`或`SELECT CURRENT_DATE();`都会返回类似2025-07-08这样的当前日期

     2.CURTIME()或CURRENT_TIME():返回当前系统的时间值

    这两个函数的功能也是相同的

    例如,`SELECT CURTIME();`或`SELECT CURRENT_TIME();`可能会返回类似15:30:00这样的当前时间

     3.NOW()或SYSDATE():返回当前系统的日期和时间值

    这两个函数的功能相同

    例如,`SELECT NOW();`或`SELECT SYSDATE();`可能会返回类似2025-07-08 15:30:00这样的完整日期和时间

     4.DATE_FORMAT(date,format):根据指定的格式格式化日期

    例如,`SELECT DATE_FORMAT(2025-07-08,%Y-%m-%d %H:%i:%s);`会返回2025-07-08 00:00:00(注意:这里的时间部分被格式化为00:00:00,因为原始日期中没有时间信息)

     5.DATE_ADD(date,INTERVAL num type):向日期添加指定的时间间隔

    例如,`SELECT DATE_ADD(2025-07-08,INTERVAL 10 DAY);`会返回2025-07-18

     6.DATEDIFF(date1,date2):返回两个日期之间的天数差

    例如,`SELECT DATEDIFF(2025-07-10,2025-07-08);`会返回2

     此外,MySQL还提供了其他日期和时间函数,如YEAR(date)返回指定日期的年份,MONTH(date)返回指定日期的月份,DAY(date)返回指定日期的日等

     四、聚合函数 聚合函数用于根据一组数据求出一个值,常用于报表生成和分析

    聚合函数的结果值只根据选定数据行中非NULL的值进行计算,NULL值则被忽略

     1.COUNT():返回表中的记录数

    如果指定了列名,则返回该列中非NULL值的个数

    例如,`SELECT COUNT() FROM students;`会返回students表中的总行数

     2.SUM(column):返回指定列的数值总和

    例如,`SELECT SUM(price) FROM products;`会计算所有产品价格的总和

     3.AVG(column):返回指定列的平均值

    例如,`SELECT AVG(score) FROM scores;`会计算scores表中score列的平均值

     4.MAX(column):返回指定列的最大值

    例如,`SELECT MAX(score) FROM scores;`会求出scores表中score列的最大值

     5