ใช้ตาราง INFORMATION_SCHEMA.COLUMNS เพื่อดูรายชื่อตารางและคอลัมน์ทั้งหมดในฐานข้อมูล
รูปแบบคำสั่ง
SELECT DISTINCT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'yourDatabaseName';
ตัวอย่าง: ฐานข้อมูล sample
mysql> SELECT DISTINCT TABLE_NAME, COLUMN_NAME
-> FROM INFORMATION_SCHEMA.COLUMNS
-> WHERE TABLE_SCHEMA = 'sample';
ผลลัพธ์ (บางส่วน)
+--------------------------------+-------------------------------+ | TABLE_NAME | COLUMN_NAME | +--------------------------------+-------------------------------+ | aggregatefunctiondemo | UserId | | aggregatefunctiondemo | UserName | | allownulldefaulnotnulldemo | Id | | allownulldefaulnotnulldemo | UserAddress | | allownulldefaulnotnulldemo | UserName | | ... | ... | | userlogindetails | UserId | +--------------------------------+-------------------------------+
คอลัมน์ที่มีประโยชน์ใน INFORMATION_SCHEMA.COLUMNS
| คอลัมน์ | คำอธิบาย |
|---|---|
| TABLE_SCHEMA | ชื่อฐานข้อมูล |
| TABLE_NAME | ชื่อตาราง |
| COLUMN_NAME | ชื่อคอลัมน์ |
| ORDINAL_POSITION | ลำดับคอลัมน์ (1,2,3...) |
| COLUMN_DEFAULT | ค่า DEFAULT |
| IS_NULLABLE | YES/NO |
| DATA_TYPE | ชนิดข้อมูล (int, varchar, etc.) |
| CHARACTER_MAXIMUM_LENGTH | ความยาวสูงสุด (สำหรับ string) |
| NUMERIC_PRECISION | ความแม่นยำ (สำหรับ number) |
| COLUMN_KEY | PRI, UNI, MUL (Key type) |
| EXTRA | auto_increment, etc. |
Query ที่มีประโยชน์เพิ่มเติม
หาตารางที่มีคอลัมน์ชื่อเฉพาะ
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'sample' AND COLUMN_NAME = 'email';
ดูโครงสร้างตารางเฉพาะตาราง
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_KEY, EXTRA FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'sample' AND TABLE_NAME = 'your_table' ORDER BY ORDINAL_POSITION;
นับจำนวนคอลัมน์ต่อตาราง
SELECT TABLE_NAME, COUNT(*) as column_count FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'sample' GROUP BY TABLE_NAME ORDER BY column_count DESC;