คำสั่ง SHOW TABLES ไม่รองรับ Aliase โดยตรง แต่สามารถ Query INFORMATION_SCHEMA.TABLES แทน แล้วใช้ AS ตั้งชื่อคอลัมน์ผลลัพธ์
Syntax
SELECT TABLE_NAME AS anyAliasName FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE();
ตัวอย่าง: ตั้ง Alias เป็น MY_TABLE_NAME
mysql> SELECT TABLE_NAME AS MY_TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE();
ผลลัพธ์ (ตัวอย่างบางส่วน)
+------------------------------------+ | MY_TABLE_NAME | +------------------------------------+ | a | | accumulateddemo | | add10minutedemo | | add1toexistingvalue | | addanumbertocurrentvaluedemo | | addcolumnandindexdemo | | addingcurrentyeardemo | | addprefixtocolumndemo | | addtoexistingvaluedemo | | addtotaltimedemo | | ... (408 rows total) | +------------------------------------+
ข้อมูลเพิ่มเติมที่ดึงได้จาก INFORMATION_SCHEMA.TABLES
SELECT
TABLE_NAME AS table_name,
ENGINE,
TABLE_ROWS,
ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS size_mb,
TABLE_COLLATION,
CREATE_TIME,
UPDATE_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = DATABASE()
ORDER BY TABLE_NAME;
กรองเฉพาะ Base Table (ไม่รวม View)
SELECT TABLE_NAME AS my_tables FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_TYPE = 'BASE TABLE';
SHOW TABLES vs INFORMATION_SCHEMA
| คุณสมบัติ | SHOW TABLES | INFORMATION_SCHEMA.TABLES |
|---|---|---|
| Alias Column | ไม่ได้ | ได้ (AS) |
| Filter/Where | LIKE pattern เท่านั้น | WHERE ทุกอย่าง |
| Join อื่น | ไม่ได้ | ได้ (JOIN COLUMNS, STATISTICS) |
| Metadata เพิ่ม | ไม่มี | Engine, Rows, Size, Collation, Time |
| Performance | เร็วกว่าเล็กน้อย | ช้ากว่า (Metadata Lock) |
MySQL 8.0: SHOW TABLES WITH ALIAS (ไม่มี)
ยังไม่รองรับ ต้องใช้ INFORMATION_SCHEMA