Mysql学习笔记之函数

1.简介

SQL提供了很多函数,便于在查询时能够快速的进行计算或者计数等操作,下文介绍一些实际场景中常用的函数。

2.字符串函数

常用的字符串函数如下表所示:

函数名描述
LENGTH(str)返回字符串的长度,以字节为单位。例如LENGTH(‘hello’)返回5
CHAR_LENGTH(str)返回字符串的长度,以字符为单位。对于多字节字符集,一个字符可能占用多个字节
CONCAT(str1,str2,…)将多个字符串str1、str2等连接成一个字符串。例如CONCAT(‘hello’, ’ ', ‘world’)返回“hello world”
SUBSTRING(str, pos, len)从字符串str中返回起始位置为pos、长度为len的子字符串。例如SUBSTRING(‘hello’, 2, 3)返回“ell”
UPPER(str)将字符串str中的所有字符转换为大写
LOWER(str)将字符串str中的所有字符转换为小写
REPLACE(str, from_str, to_str)将字符串str中所有出现的子字符串from_str替换为to_str。例如REPLACE(‘hello world’, ‘world’, ‘mysql’)返回“hello mysql”

3. 数值函数

函数名描述
ABS(num)返回数值num的绝对值。例如ABS(-5)返回5
CEIL(num)向上取整,例如CEIL(3.14)返回4
FLOOR(num)向下取整,例如CEIL(3.14)返回3
ROUND(num, decimals)指定保留几位小数,例如ROUND(3.14159, 2)返回3.14
RAND()返回一个0到1之间的随机浮点数
POW(base, exp)返回base的exp次幂。例如POW(2, 3)返回8

4.日期时间函数

函数名描述
NOW()返回当前的日期和时间,例如NOW()返回“2025-01-12 15:30:00”
CURDATE()返回当前日期,例如CURDATE()返回“2025-01-12”
CURTIME()返回当前时间,例如CURTIME()返回“15:30:00”
DATE_ADD(date, INTERVAL expr type)将时间间隔expr添加到日期date中。type可以是DAY、MONTH、YEAR等。例如DATE_ADD(‘2025-01-12’, INTERVAL 10 DAY)返回“2025-01-22”
DATE_SUB(date, INTERVAL expr type)从日期date中减去时间间隔expr。例如DATE_SUB(‘2025-01-12’, INTERVAL 10 DAY)返回“2024-12-31”
DATEDIFF(expr1, expr2)返回两个日期expr1和expr2之间的天数差。例如DATEDIFF(‘2025-01-22’, ‘2025-01-12’)返回10

5.聚合函数

函数名描述
COUNT(expr)返回expr中非NULL值的数量。常用于统计记录数
SUM(expr)返回expr中所有值的总和。expr通常为数值类型的列。例如SUM(salary)计算工资总和
AVG(expr)返回expr中所有值的平均值。例如AVG(age)计算平均年龄
MAX(expr)返回expr中的最大值。例如MAX(score)获取最高分数
MIN(expr)返回expr中的最小值。例如MIN(price)获取最低价格

6.条件函数

函数名描述
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默认值

case语句语法:

CASE column_name
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    ELSE default_result
END
-- 或者
CASE column_name
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    ELSE default_result
END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值