Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ดึงชื่อคอลัมน์และชนิดข้อมูลจาก MySQL ด้วย INFORMATION_SCHEMA.COLUMNS

สามารถดึงข้อมูลโครงสร้างตาราง (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_NULLABLEYES/NO - รองรับ NULL หรือไม่
COLUMN_KEYPRI, UNI, MUL - เป็น Primary/Unique/Index
COLUMN_DEFAULTค่าเริ่มต้น
EXTRAauto_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 อัตโนมัติ