Tóm tắt
Truy vấn INFORMATION_SCHEMA.COLUMNS với COUNT(DISTINCT TABLE_NAME) và COUNT(COLUMN_NAME) để lấy số lượng bảng và cột của một database.
Truy vấn
SELECT
COUNT(DISTINCT TABLE_NAME) AS TotalTable,
COUNT(COLUMN_NAME) AS TotalColumn
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'ten_database';
Ví dụ với database 'sample'
mysql> SELECT COUNT(DISTINCT TABLE_NAME) AS TotalTable, COUNT(COLUMN_NAME) AS TotalColumn
-> FROM INFORMATION_SCHEMA.COLUMNS
-> WHERE TABLE_SCHEMA = 'sample';
+------------+-------------+
| TotalTable | TotalColumn |
+------------+-------------+
| 123 | 287 |
+------------+-------------+
Giải thích
COUNT(DISTINCT TABLE_NAME): đếm số bảng duy nhất (mỗi bảng xuất hiện nhiều lần = số cột).COUNT(COLUMN_NAME): đếm tổng số dòng trong COLUMNS = tổng số cột tất cả bảng.TABLE_SCHEMA= tên database.
Mở rộng
-- Chi tiết từng bảng
SELECT TABLE_NAME, COUNT(*) AS ColumnCount
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'sample'
GROUP BY TABLE_NAME
ORDER BY ColumnCount DESC;