ใช้ INFORMATION_SCHEMA.TABLES เพื่อสอบถามข้อมูลเมตาของตารางในฐานข้อมูล รวมถึงนับจำนวนตารางทั้งหมด
คำสั่งนับจำนวนตาราง
mysql> SELECT COUNT(TABLE_NAME) AS TotalNumberOfTablesInWebDatabase
-> FROM INFORMATION_SCHEMA.TABLES
-> WHERE TABLE_SCHEMA = 'web';
ผลลัพธ์ตัวอย่าง
+----------------------------------+ | TotalNumberOfTablesInWebDatabase | +----------------------------------+ | 1562 | +----------------------------------+ 1 row in set (0.27 sec)
คำอธิบายคอลัมน์สำคัญใน INFORMATION_SCHEMA.TABLES
| คอลัมน์ | คำอธิบาย |
|---|---|
TABLE_SCHEMA | ชื่อฐานข้อมูล (Database Name) |
TABLE_NAME | ชื่อตาราง |
TABLE_TYPE | ประเภท: BASE TABLE, VIEW, SYSTEM VIEW |
ENGINE | Storage Engine (InnoDB, MyISAM, ฯลฯ) |
TABLE_ROWS | จำนวนแถวประมาณการ (สำหรับ InnoDB) |
CREATE_TIME | วันเวลาที่สร้างตาราง |
คำสั่งเพิ่มเติมที่มีประโยชน์
นับเฉพาะ Base Table (ไม่รวม View)
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'web' AND TABLE_TYPE = 'BASE TABLE';
แสดงรายชื่อตารางทั้งหมด
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'web' ORDER BY TABLE_NAME;
นับตารางแยกตาม Engine
SELECT ENGINE, COUNT(*) AS TableCount FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'web' GROUP BY ENGINE;
คำสั่ง SHOW TABLES (วิธีเดิม)
mysql> SHOW TABLES FROM web; -- หรือ mysql> USE web; SHOW TABLES;
จะแสดงรายการตารางและนับจำนวนที่ด้านล่าง แต่ไม่ยืดหยุ่นเท่าการ Query INFORMATION_SCHEMA
สรุป
ใช้ INFORMATION_SCHEMA.TABLES กับ WHERE TABLE_SCHEMA = 'db_name' เพื่อนับหรือค้นหาข้อมูลตารางได้อย่างยืดหยุ่นและแม่นยำ เหมาะสำหรับเขียน Script/Tool ตรวจสอบฐานข้อมูล