1. 字符串函数:

字符串函数主要用于处理 CHARVARCHARTEXT 类型的数据。

常用函数一览

函数功能描述返回值及格式
CONCAT(s1, s2, ..., sn)将多个参数拼接成一个完整的字符串返回字符串(如:'HelloWorld'
LOWER(str)将字符串中的所有字母转换为小写返回字符串(如:'hello'
UPPER(str)将字符串中的所有字母转换为大写返回字符串(如:'HELLO'
LPAD(str, n, pad)在左边填充 pad 字符,直到字符串达到长度 n返回填充后的字符串(如:'--01'
RPAD(str, n, pad)在右边填充 pad 字符,直到字符串达到长度 n返回填充后的字符串(如:'01--'
TRIM(str)删除字符串头部和尾部的所有空格返回去空格后的字符串(如:'Hello'
SUBSTRING(str, start, len)start 位置开始截取长度为 len 的字符串返回截取后的字符串(如:'Hello'
REPLACE(col, s, r)将字段中的 source 字符串替换为 replace返回替换后的字符串

使用示例

-- 1. 拼接姓名:返回字符串 'HelloWorld'
SELECT CONCAT('Hello', 'World');

-- 2. 左填充示例:返回字符串 '---01'
SELECT LPAD('01', 5, '-');

-- 3. 截取字符串(起始索引为 1):返回字符串 'Hello'
SELECT SUBSTRING('Hello World', 1, 5); 

2. 数值函数:

数值函数用于处理数字运算,常用于统计、报表和计算场景。

常用函数一览

函数功能描述返回值及格式
CEIL(x)向上取整,返回大于或等于 x 的最小整数返回整数 (INT)(如 CEIL(1.1) 返回 2
FLOOR(x)向下取整,返回小于或等于 x 的最大整数返回整数 (INT)(如 FLOOR(1.9) 返回 1
MOD(x, y)取模/求余,返回 x/y 的余数返回数值(如 MOD(5, 2) 返回 1
RAND()生成一个 0 到 1 之间的随机浮点数返回浮点数 (FLOAT)(格式如:0.123456789
ROUND(x, y)x 进行四舍五入,保留 y 位小数返回带小数的数值(如 ROUND(1.234, 2) 返回 1.23

3. 日期函数:

日期函数是业务开发中最常用的函数之一,精准掌握其返回的格式至关重要。

常用函数一览

函数功能描述返回值及严格格式
CURDATE()返回当前系统的日期(不含时间)格式为 YYYY-MM-DD(如:2024-05-02
CURTIME()返回当前系统的时间(不含日期)格式为 HH:MM:SS(如:14:30:00
NOW()返回当前系统的日期和时间格式为 YYYY-MM-DD HH:MM:SS(如:2024-05-02 14:30:00
YEAR(date)获取指定日期的年份返回整数格式(如:2024
MONTH(date)获取指定日期的月份返回整数格式,范围 1-12(如:5
DAY(date)获取指定日期的具体天数返回整数格式,范围 1-31(如:2
DATE_ADD(date, INTERVAL expr type)给日期加上一个时间间隔格式与输入的 date 保持一致(如返回 2024-05-09
DATEDIFF(date1, date2)返回起始时间和结束时间之间的天数差返回整数(如:计算得出相差 10 天,结果就是 10

使用示例

-- 计算 70 年后的今天是什么时候:返回格式为 YYYY-MM-DD HH:MM:SS
SELECT DATE_ADD(NOW(), INTERVAL 70 YEAR);

-- 计算两个日期相差的天数:返回整数格式 10
SELECT DATEDIFF('2024-05-12', '2024-05-02');

4. 流程函数:SQL 里的“If-Else”

流程控制函数能让你在 SQL 层面实现条件判断,其返回值类型非常灵活。

常用函数一览

函数功能描述返回值及格式
IF(value, t, f)如果 value 为 true,则返回 t,否则返回 f返回值的数据类型取决于 tf 的类型
IFNULL(value1, value2)如果 value1 不为空,返回 value1,否则返回 value2返回值的数据类型取决于 value1value2 的类型
CASE WHEN [ val1 ] THEN [ res1 ] ... ELSE [ default ] END多分支判断。如果 val1 为 true,返回 res1,否则返回 default返回值的数据类型取决于 res1default 的类型

使用示例

-- 返回格式为自定义的字符串('中年' 或 '青年')
select
	name,
	(case when age > 30 then '中年' else '青年' end) as '年龄段'
from employee;

-- 返回格式为自定义的字符串('一线城市' 或 '二线城市')
select
	name,
	(case workaddress 
        when '北京市' then '一线城市' 
        when '上海市' then '一线城市' 
        else '二线城市' 
    end) as '工作地址'
from employee;

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐