Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में सभी डेटाबेस कैसे प्रदर्शित करें और प्रत्येक डेटाबेस के लिए सभी टेबल दिखाएं?

MySQL में INFORMATION_SCHEMA का उपयोग करके सभी डेटाबेस और उनकी टेबल सूचीबद्ध करना

MySQL में सभी डेटाबेस और प्रत्येक डेटाबेस की टेबल देखने के लिए INFORMATION_SCHEMA डेटाबेस के SCHEMATA और TABLES टेबल को जॉइन करें।

क्वेरी

SELECT 
    my_schema.SCHEMA_NAME,
    GROUP_CONCAT(tbl.TABLE_NAME) 
FROM INFORMATION_SCHEMA.SCHEMATA my_schema
LEFT JOIN INFORMATION_SCHEMA.TABLES tbl 
    ON my_schema.SCHEMA_NAME = tbl.TABLE_SCHEMA
GROUP BY my_schema.SCHEMA_NAME;

कार्यान्वयन और आउटपुट

mysql> SELECT my_schema.SCHEMA_NAME, GROUP_CONCAT(tbl.TABLE_NAME)
    FROM INFORMATION_SCHEMA.SCHEMATA my_schema
    LEFT JOIN INFORMATION_SCHEMA.TABLES tbl 
        ON my_schema.SCHEMA_NAME = tbl.TABLE_SCHEMA
    GROUP BY my_schema.SCHEMA_NAME;

आउटपुट (संक्षिप्त):

+---------------------------+--------------------------------------------------+
| SCHEMA_NAME               | group_concat(tbl.TABLE_NAME)                     |
+---------------------------+--------------------------------------------------+
| information_schema        | COLUMNS, TABLES, VIEWS, ROUTINES, ...            |
| mysql                     | db, user, tables_priv, columns_priv, ...         |
| performance_schema        | events_waits_current, file_summary_by_instance,  |
| sys                       | host_summary, io_global_by_file, ...             |
| web                       | DemoTable, demotable605, demotable613, ...       |
| test                      | customers, employees, products, ...              |
| ...                       | ...                                              |
+---------------------------+--------------------------------------------------+
36 rows in set, 6 warnings (0.18 sec)

व्याख्या:

  • INFORMATION_SCHEMA.SCHEMATA - सभी डेटाबेस (स्कीमा) की सूची
  • INFORMATION_SCHEMA.TABLES - सभी टेबल की सूची उनके स्कीमा के साथ
  • LEFT JOIN - डेटाबेस जिनमें कोई टेबल नहीं, वे भी शामिल होंगे (NULL टेबल सूची)
  • GROUP_CONCAT - प्रत्येक डेटाबेस की टेबल को कॉमा-सेपरेटेड सूची में जोड़ता है
  • GROUP BY SCHEMA_NAME - प्रति डेटाबेस एक पंक्ति

सरल विकल्प: अलग-अलग कमांड

-- सभी डेटाबेस दिखाएं
SHOW DATABASES;

-- विशिष्ट डेटाबेस की टेबल दिखाएं
USE database_name;
SHOW TABLES;

-- या बिना USE किए
SHOW TABLES FROM database_name;

केवल यूजर डेटाबेस (सिस्टम डेटाबेस छोड़कर)

SELECT SCHEMA_NAME 
FROM INFORMATION_SCHEMA.SCHEMATA
WHERE SCHEMA_NAME NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys');

टेबल काउंट के साथ

SELECT 
    SCHEMA_NAME,
    COUNT(TABLE_NAME) AS table_count
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys')
GROUP BY SCHEMA_NAME
ORDER BY table_count DESC;

प्रदर्शन नोट

INFORMATION_SCHEMA क्वेरी बड़ी संख्या में टेबल/डेटाबेस पर धीमी हो सकती हैं क्योंकि ये मेटाडेटा लॉक लेती हैं। SHOW DATABASES और SHOW TABLES आमतौर पर तेज़ होते हैं।

  1. - MySQL में टेबल जोड़कर (JOIN) मान कैसे प्राप्त करें?

    JOIN का उपयोग दो टेबल को सामान्य कॉलम (PK-FK) पर जोड़ें। टेबल 1: demo52 insert into demo52 values(1,John), (2,David), (3,Mike); टेबल 2: demo53 (FK से demo52) insert into demo53 values(1,23), (2,22), (3,26); JOIN क्वेरी SELECT name FROM demo52 t1 JOIN demo53 t2 ON t1.id=t2.id WHERE t1.id=1; +-

  1. - MySQL डेटाबेस और टेबल के बारे में जानकारी प्राप्त करना

    उपयोगकर्ता के लिए डेटाबेस या टेबल का नाम या टेबल की संरचना या कॉलम का नाम भूल जाना संभव है। इस समस्या को MySQL का उपयोग करके हल किया जा सकता है क्योंकि यह कई स्टेटमेंट का समर्थन करता है जो इसके द्वारा समर्थित डेटाबेस और टेबल के बारे में जानकारी प्रदान करते हैं। SHOW DATABASES क्वेरी का उपयोग सर्वर

  1. - Python में MySQL का उपयोग करके डेटाबेस और सर्वर में मौजूद सभी टेबल दिखाना

    कभी-कभी हमें अपने डेटाबेस में मौजूद सभी टेबल की सूची चाहिए होती है। यह SHOW TABLES कमांड से किया जा सकता है। सिंटैक्स डेटाबेस में टेबल दिखाने के लिए: SHOW TABLES सर्वर में टेबल दिखाने के लिए: SELECT table_name FROM information_schema.tables Python में MySQL का उपयोग करके सभी टेबल दिखाने के चरण