本文共 3694 字,大约阅读时间需要 12 分钟。
MySQL数据库提供了丰富的内置函数,涵盖了从数学运算到字符串操作、日期时间处理、条件判断等多个方面。以下是对MySQL常用函数的详细介绍,帮助开发者更高效地利用这些功能。
数学函数主要用于处理数字,包括整数、浮点数等。这些函数在数据处理、统计分析等场景中非常有用。
ABS(x)
返回输入值x的绝对值。示例:SELECT ABS(-1)
返回:1 CEIL(x)、CEILING(x)
返回大于或等于x的最小整数。示例:SELECT CEIL(1.5)
返回:2 FLOOR(x)
返回小于或等于x的最大整数。示例:SELECT FLOOR(1.5)
返回:1 RAND()、RAND(x)
返回0到1之间的随机数,x值相同则返回相同随机数。示例:SELECT RAND()
返回:0.93099315644334SELECT RAND(2)
返回:1.5865798029924 SIGN(x)
返回x的符号:-1(负数)、0(零)、1(正数)。示例:SELECT SIGN(-10)
返回:-1 PI()
返回圆周率(约3.141593)。SELECT PI()
返回:3.141593 TRUNCATE(x,y)
将x保留到小数点后y位,不进行四舍五入。SELECT TRUNCATE(1.23456,3)
返回:1.234 ROUND(x)
返回x的最近整数。SELECT ROUND(1.23456)
返回:1 EXP(x)
返回e的x次方。SELECT EXP(3)
返回:20.085536923188 字符串函数是MySQL中最常用的一类函数,用于处理和操作字符串数据。
CHAR_LENGTH(s)、LENGTH(s)
返回字符串s的字符数。示例:SELECT CHAR_LENGTH('你好123')
返回:5SELECT LENGTH('你好123')
返回:9 CONCAT(s1,s2,...)
将多个字符串拼接成一个字符串。示例:SELECT CONCAT('12','34')
返回:1234 CONCAT_WS(x,s1,s2,...)
将多个字符串拼接成一个字符串,并用x作为分隔符。示例:SELECT CONCAT_WS('@','12','34')
返回:12@34 INSERT(s1,x,len,s2)
将s2插入s1的x位置,替换len个字符。示例:SELECT INSERT('12345',1,3,'abc')
返回:abc45 UPPER(s)、LOWER(s)
将字符串转换为大写或小写。示例:SELECT UPPER('abc')
返回:ABC LEFT(s,n)、RIGHT(s,n)
截取字符串的前n或后n个字符。示例:SELECT LEFT('abcde',2)
返回:abSELECT RIGHT('abcde',2)
返回:de LTRIM(s)、RTRIM(s)、TRIM(s)
去除字符串的前后空格。示例:SELECT TRIM(' abc ')
返回:abc 日期时间函数用于处理和操作日期、时间信息,是数据库开发中常用的功能。
CURDATE()、CURTIME()
返回当前日期或时间。示例:SELECT CURDATE()
返回:2024-10-10SELECT CURTIME()
返回:15:30:45 UNIX_TIMESTAMP(d)、FROM_UNIXTIME(d)
将日期转换为UNIX时间戳或反之。示例:SELECT UNIX_TIMESTAMP('2024-10-10 15:30:45')
返回:1666705600SELECT FROM_UNIXTIME(1666705600)
返回:2024-10-10 15:30:45 MONTH(d)、DAY(d)、DAYOFWEEK(d)
提取日期中的月、日或星期几。示例:SELECT MONTH('2024-10-10 15:30:45')
返回:10SELECT DAYOFWEEK('2024-10-10 15:30:45')
返回:5(星期五) DATE_FORMAT(d,f)
按照格式f显示日期。示例:SELECT DATE_FORMAT('2024-10-10 15:30:45','%Y-%m-%d %H:%i:%s')
返回:2024-10-10 15:30:45 用于在查询结果中筛选数据,根据特定条件返回不同的值。
IF(expr,v1,v2)
如果表达式expr成立,返回v1,否则返回v2。示例:SELECT IF(1>0,'正确','错误')
返回:正确 IFNULL(v1,v2)
如果v1是NULL,返回v2。示例:SELECT IFNULL(NULL,'Hello World')
返回:Hello World CASE expr WHEN e1 THEN v1 WHEN e2 THEN v2 ELSE vn END
根据条件返回相应的值。示例:SELECT CASE WHEN 1>0 THEN '1>0' WHEN 2>0 THEN '2>0' ELSE '3>0' END
返回:1>0 获取数据库和服务器的系统信息,常用于开发和维护。
VERSION()、DATABASE()
返回数据库版本或名称。示例:SELECT VERSION()
返回:8.0.28 CONNECTION_ID()
返回当前连接的ID。SELECT CONNECTION_ID()
返回:#12345 USER()、CURRENT_USER()
返回当前用户的信息。SELECT USER()
返回:jason@localhost CHARSET(str)、COLLATION(str)
返回字符串的字符集和排列。示例:SELECT CHARSET('abc')
返回:utf8 用于对数据进行加密,确保数据安全。
PASSWORD(str)、MD5(str)
对字符串进行加密。示例:SELECT PASSWORD('123')
返回:*23AE809DDACAF96AF0FD78ED04B6A265E05AA257 ENCODE(str,pswd_str)、DECODE(ciphertext,pswd_str)
加密和解密函数,需要相同的密码。示例:SELECT ENCODE('123','xxoo')
返回:;vx FORMAT(x,n)
将数字格式化,保留n位小数。示例:SELECT FORMAT(3.1415926,3)
返回:3.142 BIN(x)、HEX(x)、OCT(x)
将数字转换为二进制、十六进制、八进制。示例:SELECT HEX(255)
返回:ff INET_ATON(IP)、INET_NTOA(n)
将IP地址转换为数字或将数字转换为IP地址。示例:SELECT INET_ATON('192.168.0.1')
返回:3232235521 GET_LOCK(name,time)、RELEASE_LOCK(name)
获取或释放数据库锁。示例:SELECT GET_LOCK('mylock',10)
返回:1 BENCHMARK(count,expr)
重复执行表达式并返回执行时间。示例:SELECT BENCHMARK(10000, NOW())
返回:0 CONVERT(s USING cs)
将字符串的字符集设置为指定的字符集。示例:SELECT CHARSET(CONVERT('abc' USING gbk))
返回:gbk CAST(x AS type)、CONVERT(x,type)
将数据类型转换为指定类型。示例:SELECT CAST('123' AS UNSIGNED INTEGER) + 1
返回:124 通过这些函数,MySQL 提供了强大的工具来处理各种数据操作,帮助开发者高效完成数据库任务。
转载地址:http://ylbfk.baihongyu.com/