MySQL 函数

文章目录

MySQL 是一个流行的开源关系型数据库管理系统,它提供丰富的内置函数来进行常见的数据处理和计算操作。以下是一些常用的MySQL函数:

聚合函数:

AVG():计算某列的平均值
SUM():计算某列值的总和
COUNT():计算某列的行数
MAX():返回某列的最大值
MIN():返回某列的最小值

字符串函数:

CONCAT():连接两个或多个字符串
LENGTH():返回字符串的长度
SUBSTRING():返回字符串的子串
REPLACE():替换字符串中的子串
UPPER() / LOWER():将字符串转换为大写 / 小写

时间和日期函数:

NOW():返回当前日期和时间
DATE_FORMAT():将日期按指定格式进行格式化
YEAR() / MONTH() / DAY():提取日期中的年、月、日信息
TIMESTAMPDIFF():计算两个日期之间的差值

数学函数:

ROUND():对数值进行四舍五入
ABS():返回数值的绝对值
SQRT():返回数值的平方根
POWER():返回数值的乘方结果

条件函数:

IF():根据指定条件返回不同的值
CASE WHEN ... THEN ... ELSE ... END:条件判断语句

除了上述函数之外,MySQL还支持许多其他类型的函数,如条件判断函数、加密函数、位运算函数等。这些函数可以帮助用户对数据进行各种操作和计算,提高了数据库的灵活性和功能性。

字符串函数

常用函数:

函数 功能
CONCAT(s1, s2, ..., sn) 字符串拼接,将s1, s2, ..., sn拼接成一个字符串
LOWER(str) 将字符串全部转为小写
UPPER(str) 将字符串全部转为大写
LPAD(str, n, pad) 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度
RPAD(str, n, pad) 右填充,用字符串pad对str的右边进行填充,达到n个字符串长度
TRIM(str) 去掉字符串头部和尾部的空格
SUBSTRING(str, start, len) 返回从字符串str从start位置起的len个长度的字符串
REPLACE(column, source, replace) 替换字符串

使用示例:

plsql 复制代码
-- 拼接
SELECT CONCAT('Hello', 'World');
-- 小写
SELECT LOWER('Hello');
-- 大写
SELECT UPPER('Hello');
-- 左填充
SELECT LPAD('01', 5, '-');
-- 右填充
SELECT RPAD('01', 5, '-');
-- 去除空格
SELECT TRIM(' Hello World ');
-- 切片(起始索引为1)
SELECT SUBSTRING('Hello World', 1, 5);

数值函数

常见函数:

函数 功能
CEIL(x) 向上取整
FLOOR(x) 向下取整
MOD(x, y) 返回x/y的模
RAND() 返回0~1内的随机数
ROUND(x, y) 求参数x的四舍五入值,保留y位小数

日期函数

常用函数:

函数 功能
CURDATE() 返回当前日期
CURTIME() 返回当前时间
NOW() 返回当前日期和时间
YEAR(date) 获取指定date的年份
MONTH(date) 获取指定date的月份
DAY(date) 获取指定date的日期
DATE_ADD(date, INTERVAL expr type) 返回一个日期/时间值加上一个时间间隔expr后的时间值
DATEDIFF(date1, date2) 返回起始时间date1和结束时间date2之间的天数

例子:

plsql 复制代码
-- DATE_ADD
SELECT DATE_ADD(NOW(), INTERVAL 70 YEAR);

流程函数

常用函数:

函数 功能
IF(value, t, f) 如果value为true,则返回t,否则返回f
IFNULL(value1, value2) 如果value1不为空,返回value1,否则返回value2
CASE WHEN [ val1 ] THEN [ res1 ] ... ELSE [ default ] END 如果val1为true,返回res1,... 否则返回default默认值
CASE [ expr ] WHEN [ val1 ] THEN [ res1 ] ... ELSE [ default ] END 如果expr的值等于val1,返回res1,... 否则返回default默认值

例子:

plsql 复制代码
select
	name,
	(case when age > 30 then '中年' else '青年' end)
from employee;

select
	name,
	(case workaddress when '北京市' then '一线城市' 
   when '上海市' then '一线城市' else '二线城市' end) as '工作地址'
from employee;
相关推荐
2501_941805936 小时前
在大阪智能零售场景中构建支付实时处理与高并发顾客行为分析平台的工程设计实践经验分享
数据库
李慕婉学姐6 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
珠海西格电力6 小时前
零碳园区有哪些政策支持?
大数据·数据库·人工智能·物联网·能源
哈里谢顿6 小时前
记录一次sql优化记录
mysql
数据大魔方6 小时前
【期货量化实战】日内动量策略:顺势而为的短线交易法(Python源码)
开发语言·数据库·python·mysql·算法·github·程序员创富
Chasing Aurora7 小时前
数据库连接+查询优化
数据库·sql·mysql·prompt·约束
倔强的石头_7 小时前
【金仓数据库】ksql 指南(六)—— 创建与管理用户和权限(KingbaseES 安全控制核心)
数据库
小熊officer8 小时前
Python字符串
开发语言·数据库·python
渐暖°8 小时前
JDBC直连ORACLE进行查询
数据库·oracle
萧曵 丶8 小时前
Next-Key Lock、记录锁、间隙锁浅谈
数据库·sql·mysql·mvcc·可重复读·幻读