Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách chuyển chữ thường thành chữ HOA trong MySQL (UPPER)


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àmMô tảVí dụKết quả
UPPER(str) / UCASE(str)Chuyển thành chữ HOAUPPER('abc')ABC
LOWER(str) / LCASE(str)Chuyển thành chữ thườngLOWER('ABC')abc
INITCAP(str) - Oracle/PostgreSQLViế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)