Cú pháp cơ bản
Sử dụng hàm UPPER() (hoặc UCASE() - đồng nghĩa):
SELECT UPPER('chuoi_thuong');
Ví dụ nhanh
mysql> SELECT UPPER('john');
+---------------+
| UPPER('john') |
+---------------+
| JOHN |
+---------------+
1 row in set (0.00 sec)
Cập nhật dữ liệu trong bảng (UPDATE)
UPDATE ten_bang SET ten_cot = UPPER(ten_cot);
Ví dụ đầy đủ
1. Tạo bảng
mysql> CREATE TABLE UpperTableDemo ( -> BookName LONGTEXT -> ); Query OK, 0 rows affected (0.70 sec)
2. Chèn dữ liệu chữ thường
mysql> INSERT INTO UpperTableDemo VALUES('introduction to c');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO UpperTableDemo VALUES('introduction to java');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO UpperTableDemo VALUES('introduction to python');
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO UpperTableDemo VALUES('introduction to c#');
Query OK, 1 row affected (0.17 sec)
3. Dữ liệu gốc
mysql> SELECT * FROM UpperTableDemo;
+------------------------+ | BookName | +------------------------+ | introduction to c | | introduction to java | | introduction to python | | introduction to c# | +------------------------+ 4 rows in set (0.00 sec)
4. Chuyển thành chữ HOA
mysql> UPDATE UpperTableDemo SET BookName = UPPER(BookName); Query OK, 4 rows affected (0.16 sec) Rows matched: 4 Changed: 4 Warnings: 0
5. Kết quả
mysql> SELECT * FROM UpperTableDemo;
+------------------------+ | BookName | +------------------------+ | INTRODUCTION TO C | | INTRODUCTION TO JAVA | | INTRODUCTION TO PYTHON | | INTRODUCTION TO C# | +------------------------+ 4 rows in set (0.00 sec)
Hàm liên quan
| Hàm | Mô tả | Ví dụ | Kết quả |
|---|---|---|---|
| UPPER(str) / UCASE(str) | Chuyển thành chữ HOA | UPPER('abc') | ABC |
| LOWER(str) / LCASE(str) | Chuyển thành chữ thường | LOWER('ABC') | abc |
| INITCAP(str) - Oracle/PostgreSQL | Viết hoa chữ cái đầu từ | INITCAP('hello world') | Hello World |
| CONCAT(UPPER(SUBSTR(str,1,1)), LOWER(SUBSTR(str,2))) | Viết hoa chữ cái đầu (MySQL) | ... | Hello world |
Ứng dụng thực tế
Tìm kiếm không phân biệt hoa thường (Case-insensitive)
-- MySQL mặc định case-insensitive với collation _ci
SELECT * FROM users WHERE UPPER(username) = UPPER('JOHN');
Chuẩn hóa dữ liệu nhập vào
INSERT INTO users (username, email)
VALUES (UPPER('john_doe'), LOWER('JOHN@EXAMPLE.COM'));
Hiển thị có format
SELECT
UPPER(first_name) AS FIRST_NAME,
LOWER(email) AS email
FROM users;
Lưu ý
- MySQL collation mặc định
utf8mb4_0900_ai_ci(accent insensitive, case insensitive) - So sánh
WHERE name = 'john'khớp 'JOHN', 'John', 'john' (với _ci) UPPER()hữu ích khi cần hiển thị chuẩn hóa hoặc xuất dữ liệu- Không dùng UPPER() trong WHERE nếu cột có index (không dùng index)