博客
关于我
MySQL函数(转发)
阅读量:789 次
发布时间:2023-02-12

本文共 3694 字,大约阅读时间需要 12 分钟。

MySQL数据库函数全面解析

MySQL数据库提供了丰富的内置函数,涵盖了从数学运算到字符串操作、日期时间处理、条件判断等多个方面。以下是对MySQL常用函数的详细介绍,帮助开发者更高效地利用这些功能。

一、数学函数

数学函数主要用于处理数字,包括整数、浮点数等。这些函数在数据处理、统计分析等场景中非常有用。

1. 绝对值函数

ABS(x)

返回输入值x的绝对值。
示例:
SELECT ABS(-1)
返回:1

2. 取整函数

CEIL(x)、CEILING(x)

返回大于或等于x的最小整数。
示例:
SELECT CEIL(1.5)
返回:2

FLOOR(x)

返回小于或等于x的最大整数。
示例:
SELECT FLOOR(1.5)
返回:1

3. 随机函数

RAND()、RAND(x)

返回0到1之间的随机数,x值相同则返回相同随机数。
示例:
SELECT RAND()
返回:0.93099315644334
SELECT RAND(2)
返回:1.5865798029924

4. 符号函数

SIGN(x)

返回x的符号:-1(负数)、0(零)、1(正数)。
示例:
SELECT SIGN(-10)
返回:-1

5. 常用数学函数

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中最常用的一类函数,用于处理和操作字符串数据。

1. 字符串长度

CHAR_LENGTH(s)、LENGTH(s)

返回字符串s的字符数。
示例:
SELECT CHAR_LENGTH('你好123')
返回:5
SELECT LENGTH('你好123')
返回:9

2. 字符串拼接

CONCAT(s1,s2,...)

将多个字符串拼接成一个字符串。
示例:
SELECT CONCAT('12','34')
返回:1234

CONCAT_WS(x,s1,s2,...)

将多个字符串拼接成一个字符串,并用x作为分隔符。
示例:
SELECT CONCAT_WS('@','12','34')
返回:12@34

3. 字符串替换

INSERT(s1,x,len,s2)

将s2插入s1的x位置,替换len个字符。
示例:
SELECT INSERT('12345',1,3,'abc')
返回:abc45

4. 字符串大小写转换

UPPER(s)、LOWER(s)

将字符串转换为大写或小写。
示例:
SELECT UPPER('abc')
返回:ABC

5. 字符串截取

LEFT(s,n)、RIGHT(s,n)

截取字符串的前n或后n个字符。
示例:
SELECT LEFT('abcde',2)
返回:ab
SELECT RIGHT('abcde',2)
返回:de

6. 空格处理

LTRIM(s)、RTRIM(s)、TRIM(s)

去除字符串的前后空格。
示例:
SELECT TRIM(' abc ')
返回:abc

三、日期时间函数

日期时间函数用于处理和操作日期、时间信息,是数据库开发中常用的功能。

1. 获取当前日期时间

CURDATE()、CURTIME()

返回当前日期或时间。
示例:
SELECT CURDATE()
返回:2024-10-10
SELECT CURTIME()
返回:15:30:45

2. 时间戳转换

UNIX_TIMESTAMP(d)、FROM_UNIXTIME(d)

将日期转换为UNIX时间戳或反之。
示例:
SELECT UNIX_TIMESTAMP('2024-10-10 15:30:45')
返回:1666705600
SELECT FROM_UNIXTIME(1666705600)
返回:2024-10-10 15:30:45

3. 日期分解

MONTH(d)、DAY(d)、DAYOFWEEK(d)

提取日期中的月、日或星期几。
示例:
SELECT MONTH('2024-10-10 15:30:45')
返回:10
SELECT DAYOFWEEK('2024-10-10 15:30:45')
返回:5(星期五)

4. 时间格式化

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

四、条件判断函数

用于在查询结果中筛选数据,根据特定条件返回不同的值。

1. 条件判断

IF(expr,v1,v2)

如果表达式expr成立,返回v1,否则返回v2。
示例:
SELECT IF(1>0,'正确','错误')
返回:正确

2. NULL 检查

IFNULL(v1,v2)

如果v1是NULL,返回v2。
示例:
SELECT IFNULL(NULL,'Hello World')
返回:Hello World

3. CASE 语句

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

五、系统信息函数

获取数据库和服务器的系统信息,常用于开发和维护。

1. 数据库信息

VERSION()、DATABASE()

返回数据库版本或名称。
示例:
SELECT VERSION()
返回:8.0.28

2. 连接信息

CONNECTION_ID()

返回当前连接的ID。
SELECT CONNECTION_ID()
返回:#12345

3. 用户信息

USER()、CURRENT_USER()

返回当前用户的信息。
SELECT USER()
返回:jason@localhost

4. 字符集信息

CHARSET(str)、COLLATION(str)

返回字符串的字符集和排列。
示例:
SELECT CHARSET('abc')
返回:utf8

六、加密函数

用于对数据进行加密,确保数据安全。

1. 加密函数

PASSWORD(str)、MD5(str)

对字符串进行加密。
示例:
SELECT PASSWORD('123')
返回:*23AE809DDACAF96AF0FD78ED04B6A265E05AA257

2. 解密函数

ENCODE(str,pswd_str)、DECODE(ciphertext,pswd_str)

加密和解密函数,需要相同的密码。
示例:
SELECT ENCODE('123','xxoo')
返回:;vx

七、其他函数

1. 格式化函数

FORMAT(x,n)

将数字格式化,保留n位小数。
示例:
SELECT FORMAT(3.1415926,3)
返回:3.142

2. 不同进制转换

BIN(x)、HEX(x)、OCT(x)

将数字转换为二进制、十六进制、八进制。
示例:
SELECT HEX(255)
返回:ff

3. IP地址转换

INET_ATON(IP)、INET_NTOA(n)

将IP地址转换为数字或将数字转换为IP地址。
示例:
SELECT INET_ATON('192.168.0.1')
返回:3232235521

4. 锁函数

GET_LOCK(name,time)、RELEASE_LOCK(name)

获取或释放数据库锁。
示例:
SELECT GET_LOCK('mylock',10)
返回:1

5. 重复执行函数

BENCHMARK(count,expr)

重复执行表达式并返回执行时间。
示例:
SELECT BENCHMARK(10000, NOW())
返回:0

6. 字符集转换

CONVERT(s USING cs)

将字符串的字符集设置为指定的字符集。
示例:
SELECT CHARSET(CONVERT('abc' USING gbk))
返回:gbk

7. 数据类型转换

CAST(x AS type)、CONVERT(x,type)

将数据类型转换为指定类型。
示例:
SELECT CAST('123' AS UNSIGNED INTEGER) + 1
返回:124

通过这些函数,MySQL 提供了强大的工具来处理各种数据操作,帮助开发者高效完成数据库任务。

转载地址:http://ylbfk.baihongyu.com/

你可能感兴趣的文章
mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
查看>>
MYSQL 查看最大连接数和修改最大连接数
查看>>
mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
查看>>
MySql 查询以逗号分隔的字符串的方法(正则)
查看>>
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>
mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
查看>>
mysql 死锁(先delete 后insert)日志分析
查看>>
MySQL 死锁了,怎么办?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 添加列,修改列,删除列
查看>>
mysql 添加索引
查看>>
MySQL 添加索引,删除索引及其用法
查看>>
MySQL 用 limit 为什么会影响性能?
查看>>
MySQL 用 limit 为什么会影响性能?有什么优化方案?
查看>>
MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
查看>>
mysql 用户管理和权限设置
查看>>
mysql 的GROUP_CONCAT函数的使用(group_by 如何显示分组之前的数据)
查看>>
MySQL 的instr函数
查看>>
MySQL 的mysql_secure_installation安全脚本执行过程介绍
查看>>