การดึงข้อมูลเมตาคอลัมน์ (Column Metadata) จาก INFORMATION_SCHEMA
View INFORMATION_SCHEMA.COLUMNS เก็บข้อมูลของทุกคอลัมน์ในทุกตาราง ใช้ Query เพื่อดูชื่อคอลัมน์และชนิดข้อมูลของตารางเฉพาะ
ไวยากรณ์ (Syntax)
SELECT COLUMN_NAME, COLUMN_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'yourTableName';
ตัวอย่างการใช้งาน
สร้างตารางตัวอย่าง:
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> ClientName VARCHAR(60),
-> ClientAge INT,
-> ClientSalary DECIMAL(10,4),
-> isRegularClient BOOL
-> );
Query OK, 0 rows affected (0.44 sec)
ดูชื่อและชนิดคอลัมน์:
mysql> SELECT COLUMN_NAME, COLUMN_TYPE
-> FROM INFORMATION_SCHEMA.COLUMNS
-> WHERE TABLE_NAME = 'DemoTable';
+-----------------+---------------+
| COLUMN_NAME | COLUMN_TYPE |
+-----------------+---------------+
| Id | int(11) |
| ClientName | varchar(60) |
| ClientAge | int(11) |
| ClientSalary | decimal(10,4) |
| isRegularClient | tinyint(1) |
+-----------------+---------------+
5 rows in set (0.02 sec)
คำอธิบาย
COLUMN_NAME= ชื่อคอลัมน์COLUMN_TYPE= ชนิดข้อมูลพร้อมความยาว/ความแม่นยำ (เช่น varchar(60), decimal(10,4))BOOLแสดงเป็นtinyint(1)(Internal Type)
คอลัมน์อื่นๆ ที่น่าสนใจใน COLUMNS
| Column | ความหมาย |
|---|---|
| IS_NULLABLE | YES/NO (อนุญาต NULL หรือไม่) |
| COLUMN_KEY | PRI (Primary), UNI (Unique), MUL (Index), '' (None) |
| COLUMN_DEFAULT | ค่า Default (NULL ถ้าไม่มี) |
| EXTRA | auto_increment, VIRTUAL GENERATED, STORED GENERATED |
| CHARACTER_SET_NAME | Charset ของคอลัมน์ (ถ้ามี) |
| COLLATION_NAME | Collation ของคอลัมน์ |