Để liệt kê tất cả các cột trong database có độ dài tên lớn hơn 5 ký tự, truy vấn INFORMATION_SCHEMA.COLUMNS với điều kiện CHAR_LENGTH(COLUMN_NAME) > 5.
Truy vấn
mysql> SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE CHAR_LENGTH(COLUMN_NAME) > 5
AND TABLE_SCHEMA = DATABASE();
Kết quả mẫu (rút gọn)
+-------------------+-------------------------+
| TABLE_NAME | COLUMN_NAME |
+-------------------+-------------------------+
| DemoTable | StudentId |
| DemoTable | StudentFirstName |
| DemoTable | StudentLastName |
| DemoTable | StudentAge |
| DemoTable | StudentCountryName |
| DemoTable | CustomerId |
| DemoTable | CustomerProductName |
| DemoTable | CustomerProductQuantity |
| ... | ... |
+-------------------+-------------------------+
(55 rows in set)
Giải thích
INFORMATION_SCHEMA.COLUMNS: View chứa metadata của tất cả cột trong tất cả bảng của tất cả schema.CHAR_LENGTH(COLUMN_NAME): Độ dài tên cột tính bằng ký tự (Unicode safe). DùngLENGTH()nếu tính bằng byte.TABLE_SCHEMA = DATABASE(): Lọc chỉ schema/database hiện tại. Bỏ điều kiện này để quét toàn server (cần quyền).
Mở rộng: Tìm cột theo pattern tên
-- Tên cột chứa 'Date'
WHERE COLUMN_NAME LIKE '%Date%'
-- Tên cột kết thúc bằng 'Id'
WHERE COLUMN_NAME LIKE '%Id'
-- Tên cột bắt đầu bằng 'User'
WHERE COLUMN_NAME LIKE 'User%'
Ứng dụng thực tế
- Kiểm tra quy ước đặt tên (naming convention): tên cột quá ngắn (< 3 ký tự) hoặc quá dài (> 30 ký tự).
- Tìm cột chưa tuân thủ chuẩn: thiếu tiền tố, hậu tố, viết tắt không chuẩn.
- Hỗ trợ refactor database, sinh documentation, migration script.