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;
相关推荐
小陈工3 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
0xDevNull8 小时前
MySQL数据冷热分离详解
后端·mysql
科技小花8 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸8 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain8 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希9 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神9 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员9 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java9 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿9 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb