MySQL常用函数速查指南
mysql 常用函数

首页 2025-07-21 14:16:17



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

    这些函数涵盖了数值计算、字符串操作、日期时间处理、聚合分析以及条件判断等多个方面

    掌握这些常用函数,能够显著提升数据库操作的灵活性和效率

    以下是对MySQL中一些核心常用函数的详细解析

     一、数值函数 数值函数主要用于处理数字类型的数据,包括整型和浮点型等,常见的数值函数有: - ABS(x):返回数值x的绝对值

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

    例如,SELECT ABS(-5)将返回5

     - MOD(x,y):返回数值x除以数值y后的余数

    与x%y的结果相同

    当除数和被除数任何一个为NULL时,返回结果也将为NULL;除数为0时将是非法运算,返回结果为NULL

     - CEIL(x)或CEILING(x):返回大于或等于数值x的最小整数值

    例如,SELECT CEILING(4.1)将返回5

     - FLOOR(x):返回小于或等于数值x的最大整数值

    例如,SELECT FLOOR(4.9)将返回4

     - RAND():返回0到1之间的随机数

    该函数不需要参数,且每次执行时返回的值都是随机的

    例如,SELECT RAND()可能会返回0.63782307378745

     - ROUND(x【,d】):对数值x执行四舍五入操作

    当函数格式为ROUND(x)时,返回值为整数;当函数格式为ROUND(x,y)时,对数值x进行四舍五入并保留小数点后y位

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

     - TRUNCATE(x,y):返回数值x保留到小数点后y位的值

    与ROUND函数不同的是,TRUNCATE函数在截取值时不会进行四舍五入

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

     - SQRT(x):返回数值x的平方根

    如果x为负数,则返回NULL

    例如,SELECT SQRT(16)会返回4

     EXP(x):返回e的x次方

     - LOG(base,x):返回以base为底的对数

     POW(x,y):返回x的y次方

     - SIGN(x):返回x的符号值,x是负数、0、正数时分别返回-1、0和1

     - GREATEST(expr1,expr2,...):返回列表中的最大值

     - LEAST(expr1,expr2,...):返回列表中的最小值

     二、字符串函数 字符串函数主要用于处理表中的字符串数据,常见的字符串函数有: - CONCAT(s1,s2,...):将多个字符串连接成一个字符串

    如果参数中有一个NULL值,则返回结果也将为NULL

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

     - CONCAT_WS(x,s1,s2,...):是CONCAT函数的特殊形式,以第一个参数x为分隔符,连接后面的多个字符串

    例如,SELECT CONCAT_WS(-,2025,07,21)会返回2025-07-21

     - SUBSTRING(s,start【,length】)或MID(s,n,len):从字符串s中提取子字符串

    start表示子字符串的起始位置(从1开始计数),length表示子字符串的长度

    如果省略length,则默认提取到字符串的末尾

    例如,SELECT SUBSTRING(Hello World,1,5)会返回Hello

     - LEFT(s,n):返回字符串s中前n个字符

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

     - RIGHT(s,n):返回字符串s中后n个字符

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

    例如,SELECT REPLACE(Hello World,World,MySQL)会返回Hello MySQL

     - INSERT(str,x,y,instr):将字符串str从第x位置开始,y个字符长的子串替换为字符串instr

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

    例如,SELECT UPPER(hello world)会返回HELLO WORLD

     - LOWER(s)或LCASE(s):将字符串s中的所有字母转换为小写字母

    例如,SELECT LOWER(HELLO WORLD)会返回hello world

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

    一个汉字占用2个字节,一个英文字符和数字占用1个字节

     - CHAR_LENGTH(s):返回字符串s的字符长度

     - TRIM(s):删除字符串s开头和结尾的空格,也可以删除字符串两侧的指定字符

     LTRIM(s):删除字符串s开头的空格

     RTRIM(s):删除字符串s结尾的空格

     - LPAD(str1,n,str2):使用字符串str2对字符串str1最左边进行填充,直到字符串str1总长度达到n个字符长度

    如果str1的字符长度大于或等于n,则不填充

     - RPAD(str1,n,str2):使用字符串str2对字符串str1最右边进行填充

     - REPEAT(s,n):返回字符串s重复n次的结果

     - LOCATE(s1,s)或POSITION(s1,s):返回子串s1在字符串s中的开始位置

    返回值的最小值为1,如果字符串s中不包含字符串s1,则返回0

    也可以使用FIND_IN_SET(s1,s2)函数,它返回在字符串s2中与s1匹配的字符串的位置

     - REVERSE(s):返回将字符串s中字符倒序排列后的结果

     - ASCII(s):返回字符串s的第一个字符的ASCII码

     BIN(n):返回值为n的二进制的字符串表示

     - BIT_LENGTH(s):返回值为二进制的字符串s的长度

     - FIELD(s,s1,s2,...):返回第一个字符串s在字符串列表(s1,s2,...)中的位置

     三、日期和时间函数 日期和时间函数主要用于处理表中的日期和时间数据,常见的日期和时间函数有: - CURDATE()或CURRENT_DATE():返回包含年月日的当前日期,格式为YYYY-MM-DD

    例如,SELECT CURDATE()会返回当前系统日期

     - CURTIME()或CURRENT_TIME():返回当前时间,格式为HH:MM:SS

     - NOW()或CURRENT_TIMESTAMP()、LOCALTIME()、LOCALTIMESTAMP():返回当前的日期和时间,格式为YYYY-MM-DD HH:MM:SS

     - YEAR(date):返回指定日期date的年份

     - MONTH(date):返回指定日期date的月份

     DAY(date):返回指定日期date的日

     - HOUR(time):返回指定时间time的小时

     - MINUTE(time):返回指定时间time的分钟

     - SECOND(time):返回指定时间time的秒

     - UNIX_TIMESTAMP(date):返回日期date的UNIX时间戳

    UNIX时间戳是从1970年1月1日(UTC/GMT的午夜)开始到当前时间所经过的秒数(不考虑闰秒)

     - DATE_FORMAT(date,format):根据format字符串格式化date值

    例如,SELECT DATE_FORMAT(NOW(),%Y-%m-%d %H:%i:%s)会返回当前日期和时间,格式为YYYY-MM-DD HH:MM:SS

     - DATE_ADD(date,INTERVAL num type):对日期时间进行加法运算

    date为datetime或date型的起始时间,interval为固定关键词,num为需要增加的时间间隔,type用来指明num的对应单位(如YEAR、MONTH、DAY、HOUR等)

    例如,SELECT D

MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道