# MySQL教程 - 10 函数
SQL 提供了一些内置的函数,可以让我们在查询和更新数据的时候,对数据进行一些处理。例如将字符串转换为大写、去掉前后空格等操作,还包括一些日期、数值等处理。
常用的函数主要分为三类:
- 文本处理函数
- 日期和时间处理函数
- 数值处理函数
# 10.1 文本处理函数
常用的文本函数如下:
函数 | 功能描述 |
---|---|
CONCAT(s1, s2, ...) | 拼接字符串(参数是任意多个) |
LENGTH(s) | 返回字符串的字节长度(按字符集不同) |
UPPER(s) | 转为大写 |
LOWER(s) | 转为小写 |
SUBSTRING(s, pos, len) | 从字符串中提取子串,pos 是其实位置,从 1 开始,len 表示长度 |
REPLACE(s, old, new) | 替换子字符串 |
TRIM([remstr] FROM s) | 去掉头尾字符,remstr 可以省略,TRIM(str) 默认为去掉前后空格 |
LOCATE(substr, s) | 查找子串首次出现的位置 |
REVERSE(s) | 反转字符串 |
LPAD(str, length, pad_str) | 左填充,用字符串 pad_str 对 str 的左边进行填充,直到 str 的长度达到 length |
RPAD(str, length, pad_str) | 右填充,用字符串 pad_str 对 str 的右边进行填充,直到 str 的长度达到 length |
上面列出了常用的函数,可以按照上面的例子执行一下,看看效果,使用 SELECT
执行即可:
SELECT CONCAT('My', 'SQL'); -- 执行结果:MySQL
SELECT LENGTH('abc'); -- 执行结果:3
SELECT UPPER('mysql'); -- 执行结果:MYSQL
SELECT LOWER('MYSQL'); -- 执行结果:mysql
SELECT SUBSTRING('abcdef', 2, 3); -- 执行结果:bcd
SELECT REPLACE('abcde', 'bc', 'xy'); -- 执行结果:axyde
SELECT TRIM(' hello '); -- 去掉前后空格,执行结果:hello
SELECT TRIM('x' FROM 'xxxHello, World!xxx'); -- 执行结果:Hello, World!
SELECT LOCATE('b', 'abcde'); -- 执行结果:2
SELECT REVERSE('abc'); -- 执行结果:cba
SELECT LPAD('1', 5, '0'); -- 执行结果:00001
SELECT RPAD('1', 5, '0'); -- 执行结果:10000
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
所以我们可以在操作数据库数据的时候,使用上面的函数。
举个例子:
内容未完......