# 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
所以我们可以在操作数据库数据的时候,使用上面的函数。
举个例子:
      内容未完......
    
 