Vấn đề: Lấy danh sách tên các database (schema) hiện có
Cần truy vấn hệ thống để xem tất cả database đã tạo.
Giải pháp: Truy vấn information_schema.schemata
Bảng hệ thống information_schema.schemata lưu metadata của tất cả database.
1. Truy vấn cơ bản
SELECT schema_name AS DatabaseName
FROM information_schema.schemata;
2. Kết quả mẫu
+---------------------------+
| DatabaseName |
+---------------------------+
| mysql |
| information_schema |
| performance_schema |
| sys |
| business |
| sample |
| hello |
| test |
| mybusiness |
| databasesample |
| schemasample |
| universitydatabase |
| education |
| mydatabase |
| database1 |
| sampledatabase |
| test3 |
| javadatabase2 |
| javasampledatabase |
| rdb |
| onetomanyrelationship |
| webtracker |
| web |
| commandline |
| hb_student_tracker |
| bothinnodbandmyisam |
| customertracker |
| tracker |
| demo |
| customer_tracker_database |
| login |
| onlinebookstore |
| customer-tracker |
| web_tracker |
| instant_app |
| 1233 |
+---------------------------+
Cách khác: SHOW DATABASES
SHOW DATABASES;
Kết quả tương tự nhưng không dễ dàng lọc/filter trong SQL.
Lọc database do người dùng tạo (loại bỏ hệ thống)
SELECT schema_name
FROM information_schema.schemata
WHERE schema_name NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys');
Ứng dụng
- Script tự động backup tất cả database user.
- Kiểm tra database tồn tại trước khi tạo.
- Giao diện admin liệt kê database.