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

MySQL นับจำนวนตารางในฐานข้อมูลด้วย INFORMATION_SCHEMA.TABLES

ใช้ 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
ENGINEStorage 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 ตรวจสอบฐานข้อมูล