SQL 字符串函数
学习 UPPER/LOWER/LENGTH/CONCAT/SUBSTR · 难度:入门 · +10XP
SQL 字符串函数
SQL 字符串函数 — 文本处理的利器
学习前的准备
你需要一个 MySQL 数据库环境。字符串函数让你能在数据库中直接处理文本。
CONCAT() 和 CONCAT_WS()
-- CONCAT:连接多个字符串
SELECT CONCAT(last_name, first_name) AS full_name FROM users;
-- CONCAT_WS:用分隔符连接(自动跳过 NULL)
SELECT CONCAT_WS('-', last_name, first_name, phone) FROM users;
SUBSTRING() 和 LEFT()/RIGHT()
SET @text = 'Hello, MySQL!';
SELECT SUBSTRING(@text, 1, 5) AS part1; -- 'Hello'
SELECT SUBSTRING(@text, 8, 5) AS part2; -- 'MySQL'
SELECT LEFT(@text, 5) AS left5; -- 'Hello'
SELECT RIGHT(@text, 6) AS right6; -- 'MySQL!'
-- 隐藏手机号中间四位
SELECT CONCAT(
LEFT(phone, 3), '****', RIGHT(phone, 4)
) AS masked_phone FROM users;
大小写转换和修剪空白
SELECT UPPER('hello') AS up; -- 'HELLO'
SELECT LOWER('WORLD') AS low; -- 'world'
SELECT TRIM(' hello ') AS t; -- 'hello'
SELECT LTRIM(' hello ') AS l; -- 'hello '
SELECT RTRIM(' hello ') AS r; -- ' hello'
REPLACE() 和 CHAR_LENGTH()
SET @sentence = '我爱编程,编程使我快乐';
SELECT REPLACE(@sentence, '编程', '写代码');
-- 我爱写代码,写代码使我快乐
SELECT CHAR_LENGTH('你好世界'); -- 4(4个汉字)
SELECT LENGTH('你好世界'); -- 12(UTF-8字节数)
字符串函数速查表
| 函数 | 作用 |
|---|---|
| CONCAT(a,b) | 连接字符串 |
| CONCAT_WS(sep,...) | 用分隔符连接 |
| SUBSTRING(s,p,l) | 截取子串 |
| LEFT/RIGHT(s,n) | 左右取n个字符 |
| UPPER/LOWER(s) | 大小写转换 |
| TRIM/LTRIM/RTRIM(s) | 去除空白 |
| REPLACE(s,old,new) | 替换子串 |
| CHAR_LENGTH(s) | 字符数 |
| LOCATE(sub,str) | 查找子串位置 |
小结
SQL 的字符串函数让你在数据库层面处理文本。CONCAT 拼接,SUBSTRING/LEFT/RIGHT 截取,UPPER/LOWER 转换大小写,TRIM 去空白,REPLACE 做替换,CHAR_LENGTH 数字符。在 SQL 查询中直接处理字符串比把数据拉到应用层再处理要高效得多。