MySQL 中的 UPPER() 是一个将字符串转换为大写的字符串函数,常与 LOWER() 搭配使用来规范化文本。它的别名是 UCASE(),两者功能完全相同。
📝 语法与核心行为
sql
UPPER(str)
- 参数 str:指定要转换的字符串,可以是文本、数字或字段名。若为 NULL,函数返回 NULL。
- 转换范围 :仅转换英文字母(a-z),其他字符(如中文、数字、标点)保持不变。
📊 使用场景与SQL示例
| 应用场景 | 示例代码 | 说明 |
|---|---|---|
| 格式化输出 | SELECT UPPER(name) FROM employees; | 统一展示文本格式,如将姓名显示为大写。 |
| 大小写不敏感过滤 | SELECT * FROM products WHERE UPPER(name) = 'KEYBOARD'; | 忽略用户输入的 'keyboard', 'Keyboard', 'KEYBOARD' 差异。 |
| 大小写不敏感 JOIN | JOIN ON UPPER(a.name) = UPPER(b.name) | 确保关联字段值在忽略大小写后仍能正确匹配。 |
| 聚合分组标准化 | SELECT UPPER(city), COUNT(*) FROM users GROUP BY UPPER(city); | 解决 'New York', 'NEW YORK' 等因大小写不同被错误分到不同组的问题。 |
| 批量数据清洗 | UPDATE products SET name = UPPER(name); | 将表中字段统一更新为大写形式,通常配合 WHERE 使用以避免全表更新。 |