Vấn đề: Xác định các bảng chứa cột tên cụ thể (ví dụ: 'EmployeeAge')
Cần quét toàn bộ database hiện tại để tìm bảng nào có cột EmployeeAge.
Giải pháp: Truy vấn INFORMATION_SCHEMA.COLUMNS
Bảng hệ thống lưu metadata cột của tất cả bảng trong tất cả schema.
1. Truy vấn
SELECT table_name, column_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = SCHEMA()
AND column_name = 'EmployeeAge';
table_schema = SCHEMA()– Lọc database hiện tại (DATABASE()hoặcSCHEMA()).column_name = 'EmployeeAge'– Tên cột cần tìm (không phân biệt hoa/thường mặc định).
2. Kết quả mẫu
+---------------+-------------+
| TABLE_NAME | COLUMN_NAME |
+---------------+-------------+
| demotable1153 | EmployeeAge |
| demotable1297 | EmployeeAge |
| demotable1303 | EmployeeAge |
| demotable1328 | EmployeeAge |
| demotable1378 | EmployeeAge |
| demotable1530 | EmployeeAge |
| demotable1559 | EmployeeAge |
| demotable1586 | EmployeeAge |
| demotable1798 | EmployeeAge |
| demotable1901 | EmployeeAge |
| demotable511 | EmployeeAge |
| demotable912 | EmployeeAge |
+---------------+-------------+
3. Xác minh (DESC một bảng)
DESC demotable1153;
+--------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+----------------+
| EmployeeId | int(11) | NO | PRI | NULL | auto_increment |
| EmployeeName | varchar(40) | YES | MUL | NULL | |
| EmployeeAge | int(11) | YES | | NULL | |
+--------------+-------------+------+-----+---------+----------------+
Mở rộng: Tìm cột theo pattern (LIKE/REGEXP)
-- Tìm cột chứa 'email'
SELECT table_name, column_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = SCHEMA()
AND column_name LIKE '%email%';
-- Tìm cột kiểu DATE
SELECT table_name, column_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = SCHEMA()
AND data_type IN ('date', 'datetime', 'timestamp');
Ứng dụng
- Audit schema – kiểm tra naming convention.
- Tự động sinh code (ORM, DTO) dựa trên schema.
- Tìm cột nhạy cảm (password, ssn, credit_card) để mã hóa.
- Phân tích tác động khi đổi tên/kiểu cột.