สามารถดึงข้อมูลโครงสร้างตาราง (Metadata) เช่น ชื่อคอลัมน์และชนิดข้อมูลได้จากระบบตาราง INFORMATION_SCHEMA.COLUMNS ของ MySQL
Syntax
SELECT CONCAT(column_name, '=', data_type) AS anyAliasName FROM information_schema.columns WHERE table_schema = 'yourDatabaseName' AND table_name = 'yourTableName';
ตัวอย่างการใช้งาน
1. สร้างตารางทดสอบ
mysql> create table DemoTable1812 (
-> Id int,
-> FirstName varchar(20),
-> Age int,
-> isMarried boolean,
-> status ENUM('ACTIVE','INACTIVE')
-> ); Query OK, 0 rows affected (0.00 sec)
2. ดึงชื่อคอลัมน์และชนิดข้อมูล
mysql> select concat(column_name, '=', data_type) as COLUMNNAMEANDTYPE
-> from information_schema.columns
-> where table_schema = 'web' and table_name = 'DemoTable1812';
ผลลัพธ์:
+-------------------+ | COLUMNNAMEANDTYPE | +-------------------+ | Id=int | | FirstName=varchar | | Age=int | | isMarried=tinyint | | status=enum | +-------------------+ 5 rows in set (0.00 sec)
คอลัมน์สำคัญใน INFORMATION_SCHEMA.COLUMNS
| คอลัมน์ | ความหมาย |
|---|---|
| TABLE_SCHEMA | ชื่อฐานข้อมูล |
| TABLE_NAME | ชื่อตาราง |
| COLUMN_NAME | ชื่อคอลัมน์ |
| DATA_TYPE | ชนิดข้อมูล (int, varchar, enum, v.v.) |
| COLUMN_TYPE | ชนิดข้อมูลพร้อมขนาด (varchar(20), int(11)) |
| IS_NULLABLE | YES/NO - รองรับ NULL หรือไม่ |
| COLUMN_KEY | PRI, UNI, MUL - เป็น Primary/Unique/Index |
| COLUMN_DEFAULT | ค่าเริ่มต้น |
| EXTRA | auto_increment, v.v. |
ตัวอย่าง Query เพิ่มเติม
-- ดูข้อมูลครบถ้วน SELECT COLUMN_NAME, DATA_TYPE, COLUMN_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT, EXTRA FROM information_schema.columns WHERE TABLE_SCHEMA = 'your_db' AND TABLE_NAME = 'your_table';
สรุป: ใช้ INFORMATION_SCHEMA.COLUMNS เพื่อดูโครงสร้างตารางได้แบบโปรแกรมเหมาะสำหรับการสร้างเครื่องมือ, Migration scripts, หรือ Documentation อัตโนมัติ