2 phương pháp phổ biến
Cách 1: SHOW COLUMNS
Cú pháp đơn giản, trả về đầy đủ metadata:
SHOW COLUMNS FROM ten_bang;
Ví dụ với bảng DemoTable603:
CREATE TABLE DemoTable603 (
ClientId INT NOT NULL AUTO_INCREMENT,
ClientName VARCHAR(100),
ClientAge INT,
ClientAddress VARCHAR(100),
ClientCountryName VARCHAR(100),
ClientEducationDetails VARCHAR(200),
PRIMARY KEY(ClientId)
);
Kết quả SHOW COLUMNS FROM DemoTable603:
+------------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+--------------+------+-----+---------+----------------+
| ClientId | int(11) | NO | PRI | NULL | auto_increment |
| ClientName | varchar(100) | YES | | NULL | |
| ClientAge | int(11) | YES | | NULL | |
| ClientAddress | varchar(100) | YES | | NULL | |
| ClientCountryName | varchar(100) | YES | | NULL | |
| ClientEducationDetails | varchar(200) | YES | | NULL | |
+------------------------+--------------+------+-----+---------+----------------+
Cách 2: INFORMATION_SCHEMA.COLUMNS
Linh hoạt hơn, có thể filter, join, sort:
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'ten_database'
AND TABLE_NAME = 'ten_bang';
Ví dụ:
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'web'
AND TABLE_NAME = 'DemoTable603';
Kết quả:
+------------------------+
| COLUMN_NAME |
+------------------------+
| ClientAddress |
| ClientAge |
| ClientCountryName |
| ClientEducationDetails |
| ClientId |
| ClientName |
+------------------------+
So sánh
| Tiêu chí | SHOW COLUMNS | INFORMATION_SCHEMA |
|---|---|---|
| Đơn giản | ✓ | Cần WHERE clause |
| Metadata đầy đủ | ✓ | Chỉ chọn cột cần thiết |
| Lọc/Sắp xếp | ✗ | ✓ (SQL đầy đủ) |
| Chạy cross-database | ✗ | ✓ |
| Programmatic access | Khó parse | Dễ dàng (result set chuẩn) |
Lệnh liên quan
DESCRIBE ten_bang(alias của SHOW COLUMNS).SHOW CREATE TABLE ten_bang(xem DDL đầy đủ).