MySQL基础必备:全面解析MySQL基本函数

mysql都有什么基本函数

时间:2025-06-29 12:16


MySQL基本函数详解 MySQL作为广泛使用的关系型数据库管理系统,提供了丰富的基本函数来处理数据

    这些函数大致可以分为数值类函数、字符串函数、日期和时间函数、聚合函数以及流程控制函数等几大类

    掌握这些函数可以极大地提高数据处理和分析的效率

    本文将详细介绍MySQL中的这些基本函数,并通过示例展示其用法

     一、数值类函数 数值类函数主要用于处理数字数据,包括整型和浮点型等

    MySQL提供了多种数值函数,以满足不同的数值计算需求

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

    无论输入的数值是正数还是负数,ABS函数都会返回其非负的绝对值

     sql SELECT ABS(-5);-- 返回5 2.SQRT(x) SQRT函数返回x的平方根

    需要注意的是,如果x是负数,则SQRT函数返回NULL,因为负数没有实数平方根

     sql SELECT SQRT(16);-- 返回4 SELECT SQRT(-16); -- 返回NULL 3.ROUND(x【,d】) ROUND函数用于将一个数值进行四舍五入

    如果指定了d,则保留d位小数;如果没有指定d,则默认保留0位小数,即四舍五入到整数

     sql SELECT ROUND(4.6);-- 返回5 SELECT ROUND(4.123,2);-- 返回4.12 4.CEIL(x) 和 FLOOR(x) CEIL函数返回大于或等于给定数值的最小整数(向上取整),而FLOOR函数返回小于或等于给定数值的最大整数(向下取整)

     sql SELECT CEIL(4.1);-- 返回5 SELECT FLOOR(4.9); -- 返回4 5.TRUNCATE(x,y) TRUNCATE函数用于返回x保留到小数点后y位的值,与ROUND函数不同的是,TRUNCATE函数不会进行四舍五入,而是直接截断

     sql SELECT TRUNCATE(2.1234567,3);-- 返回2.123 6.RAND() RAND函数用于返回0到1之间的随机数

    每次调用RAND函数时,都会返回一个不同的随机数

     sql SELECT RAND();-- 返回0到1之间的随机数 7.MOD(x,y) MOD函数返回x除以y的余数

    这个函数在处理周期性数据时非常有用

     sql SELECT MOD(10,3);-- 返回1,因为10除以3的余数是1 8.POW(x,y) POW函数返回x的y次方

    这个函数可以用于计算幂次方

     sql SELECT POW(2,3);-- 返回8,因为2的3次方是8 9.SIGN(x) SIGN函数返回参数的符号

    如果x是正数,则返回1;如果x是0,则返回0;如果x是负数,则返回-1

     sql SELECT SIGN(-5);-- 返回-1 SELECT SIGN(0);-- 返回0 SELECT SIGN(5);-- 返回1 二、字符串函数 字符串函数主要用于处理表中的字符串数据

    MySQL提供了多种字符串函数,以满足不同的字符串处理需求

     1.CONCAT(s1,s2,...) CONCAT函数用于将多个字符串连接成一个字符串

    如果参数中包含NULL值,则返回NULL

     sql SELECT CONCAT(Hello, , World);-- 返回Hello World SELECT CONCAT(My, , NULL, Name); -- 返回NULL,因为参数中包含NULL值 2.SUBSTRING(s,start【,length】) SUBSTRING函数用于从一个字符串中提取子字符串

    start参数指定子字符串的起始位置(从1开始计数),length参数指定子字符串的长度(可选)

     sql SELECT SUBSTRING(Hello World,1,5);-- 返回Hello SELECT SUBSTRING(Hello World,7); -- 返回World,从第7个字符开始到字符串结束 3.REPLACE(s,s1,s2) REPLACE函数用于将字符串s中的s1用s2替换

    这个函数在处理文本数据时非常有用

     sql SELECT REPLACE(Hello World, World, MySQL);-- 返回Hello MySQL 4.UPPER(s) 和 LOWER(s) UPPER函数将字符串s中的所有字符转换为大写,而LOWER函数将字符串s中的所有字符转换为小写

     sql SELECT UPPER(hello);-- 返回HELLO SELECT LOWER(WORLD);-- 返回world 5.LEFT(s,n) 和 RIGHT(s,n) LEFT函数返回字符串s中前n个字符,而RIGHT函数返回字符串s中后n个字符

     sql SELECT LEFT(hello,2);-- 返回he SELECT RIGHT(hello,3); -- 返回llo 6.TRIM(s) TRIM函数用于去掉字符串s开头和结尾处的空格

    如果只需要去掉开头或结尾的空格,可以使用LTRIM(s)或RTRIM(s)函数

     sql SELECT TRIM( hello);-- 返回hello SELECT LTRIM( hello);-- 返回hello SELECT RTRIM(hello);-- 返回 hello 7.LENGTH(s) 和 CHAR_LENGTH(s) LENGTH函数返回字符串s的字节长度,而CHAR_LENGTH函数返回字符串s的字符长度

    对于多字节字符集(如UTF-8),这两个函数的返回值可能不同

     sql SELECT LENGTH(hello);-- 返回5(假设使用单字节字符集) SELECT CHAR_LENGTH(hello); -- 返回5(无论使用何种字符集) 8.INSTR(str,substr) INSTR函数返回子字符串substr在文本字符串str中第一次出现的位置

    如果没有找到,则返回0

     sql SELECT INSTR(hello world, world);-- 返回7 9.LOCATE(substr,str,【pos】) LOCATE函数与INSTR函数类似,也用于查找子字符串在字符串中的位置

    不同的是,LOCATE函数可以从指定的位置pos开始查找

     sql SELECT LOCATE(world, hello world,7);-- 返回7,从第7个字符开始查找并找到world 10.REPEAT(s,n) REPEAT函数返回字符串s重复n次的结果

    这个函数可以用于生成重复的字符串

     sql SELECT REPEAT(hello,3);-- 返回hellohellohello 11.REVERSE(s) REVERSE函数返回与原始字符串s顺序相反的字符串

    这个函数可以用于反转字符串

     sql SELECT REVERSE(hello);-- 返回olleh 12.STRCMP(s1,s2) STRCMP函数比较两个字符串s1和s2的ASCII值大小

    如果s1s2,返回1

     sql SELECT STRCMP(apple, banana);-- 返回-1,因为apple的ASCII值小于banana 三、日期和时间函数 日期和时间函数主要用于处理表中的日期和时间数据

    MySQL提供了多种日期和时间函数,以满足不同的日期和时间处理需求

     1.NOW() NOW函数返回当前的日期和时间

    这个函数可以用于获取当前的日期和时间值

     sql SELECT NOW();-- 返回当前的日期和时间,格式为YYYY-MM-DD HH:MM:SS 2.CURDATE() 和 CURTIME() CURDATE函数返回当前的日期(不包含时间),而CURTIME函数返回当前的时间(不包含日期)

    这两个函数可以用于分别获取当前的日期和时间值

     sql SELECT CURDATE();-- 返回当前的日期,格式为YYYY-MM-DD SELECT CURTIME();-- 返回当前的时间,格式为HH:MM:SS 3.DATE(date) 和 TIME(date) DATE函数返回指定日期时间的日期部分,而TIME函数返回指定日期时间的时间部分

    这两个函数可以用于从日期时间值中提取日期和时间

     sql SELECT DATE(2025-06-2912:34:56);-- 返回2025-06-29 SELECT TIME(2025-06-2912:34:56);-- 返回12:34:56 4.YEAR(date)、MONTH(date) 和 DAY(date) YEAR函数返回指定日期时间的年份,MONTH函数返回月份,DAY函数返回日

    这三个函数可以用于从日期时间值中提取年、月、日

     sql SELECT YEAR(2025-06-29);-- 返回2025 SELECT MONTH(2025