Vấn đề: Liệt kê tên các cột (fields) của bảng cụ thể
Cần xem cấu trúc bảng DemoTable1938 – tên các cột.
Giải pháp: Truy vấn information_schema.columns
Bảng hệ thống lưu metadata cột. Lọc theo table_schema (database hiện tại) và table_name.
1. Tạo bảng mẫu
CREATE TABLE DemoTable1938 (
StudentId INT,
StudentName VARCHAR(20),
StudentAge INT,
StudentCountryName VARCHAR(20),
StudentMobileNumber BIGINT
);
2. Truy vấn liệt kê cột
SELECT column_name AS ALL_FIELDS
FROM information_schema.columns
WHERE table_schema = DATABASE()
AND table_name = 'DemoTable1938';
Sử dụng DATABASE() hàm trả về tên database hiện tại. \G ở cuối để hiển thị dọc (vertical format).
3. Kết quả (dạng dọc \G)
*************************** 1. row ***************************
ALL_FIELDS: StudentId
*************************** 2. row ***************************
ALL_FIELDS: StudentName
*************************** 3. row ***************************
ALL_FIELDS: StudentAge
*************************** 4. row ***************************
ALL_FIELDS: StudentCountryName
*************************** 5. row ***************************
ALL_FIELDS: StudentMobileNumber
Cách khác phổ biến hơn
DESC DemoTable1938;
-- hoặc
SHOW COLUMNS FROM DemoTable1938;
Cho kết quả bảng ngang với thêm thông tin: Type, Null, Key, Default, Extra.
Ứng dụng
- Dynamic SQL – xây dựng câu lệnh tự động dựa trên schema.
- Tool migration, ORM – đọc metadata.
- Kiểm tra sự tồn tại cột trước khi ALTER TABLE.
Mở rộng: Lấy thêm kiểu dữ liệu
SELECT column_name, data_type, character_maximum_length, is_nullable, column_key
FROM information_schema.columns
WHERE table_schema = DATABASE() AND table_name = 'DemoTable1938';