写点什么

MySql 函数

作者:秋名山码民
  • 2022 年 6 月 07 日
  • 本文字数:1138 字

    阅读完需:约 4 分钟

## 函数

- 字符串函数

- 数值函数

- 日期函数

- 流程函数

### 字符串函数

常用函数:

| 函数 | 功能 |

| ------------ | ------------ |

| 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 个长度的字符串 |

使用示例:

```mysql

-- 拼接

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 之间的天数 |

例子:

```mysql

-- 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 默认值 |

例子:

```mysql

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
用户头像

卷不死,就往…… 2021.10.19 加入

2019NOIP退役成员,华为云享专家,阿里云专家博主,csdn博主,努力进行算法分享,有问题欢迎私聊

评论

发布
暂无评论
MySql函数_6月月更_秋名山码民_InfoQ写作社区