MySQL में INFORMATION_SCHEMA.SCHEMATA से डेटाबेस नामों को रेगुलर एक्सप्रेशन (REGEXP) द्वारा फ़िल्टर करके खोजें। यह नामकरण परंपरा (जैसे 'prefix_UpperCase') आधारित खोज के लिए उपयोगी है।
उदाहरण: 'bank_' के बाद अपरकेस अक्षर वाले डेटाबेस
टेस्ट डेटाबेस बनाएं:
mysql> CREATE DATABASE bank_APP1; mysql> CREATE DATABASE bank_APP2; mysql> CREATE DATABASE bank_APP3;
REGEXP के साथ क्वेरी:
mysql> SELECT * FROM information_schema.schemata WHERE SCHEMA_NAME REGEXP '^bank_+[A-Z]';
आउटपुट:
+--------------+-------------+----------------------------+------------------------+----------+ | CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH | +--------------+-------------+----------------------------+------------------------+----------+ | def | bank_app1 | utf8 | utf8_unicode_ci | NULL | | def | bank_app2 | utf8 | utf8_unicode_ci | NULL | | def | bank_app3 | utf8 | utf8_unicode_ci | NULL | +--------------+-------------+----------------------------+------------------------+----------+
रेगुलर एक्सप्रेशन व्याख्या
'^bank_+[A-Z]'
^: स्ट्रिंग की शुरुआतbank_: शाब्दिक 'bank_'+: पिछले वर्ण (_) का एक या अधिक (यहां '_' एक से अधिक बार)[A-Z]: कोई भी अपरकेस अक्षर (A-Z)
नोट: MySQL में REGEXP डिफ़ॉल्ट रूप से केस-इनसेंसिटिव होता है (कॉलेशन पर निर्भर)। आउटपुट में 'bank_app1' लोअरकेस में दिखता है क्योंकि MySQL डेटाबेस नाम लोअरकेस में स्टोर करता है (Windows पर) या कॉलेशन के अनुसार।
केस-सेंसिटिव खोज
-- बाइनरी कॉलेशन के साथ WHERE SCHEMA_NAME COLLATE utf8mb4_bin REGEXP '^bank_+[A-Z]' -- या REGEXP BINARY (MySQL 8.0+) WHERE SCHEMA_NAME REGEXP BINARY '^bank_+[A-Z]'
अन्य उपयोगी पैटर्न
-- 'test' से शुरू होने वाले
WHERE SCHEMA_NAME REGEXP '^test'
-- '_' के बाद अंक वाले
WHERE SCHEMA_NAME REGEXP '^.*_[0-9]+$'
-- केवल लोअरकेस और अंडरस्कोर
WHERE SCHEMA_NAME NOT REGEXP '[A-Z0-9]'
-- विशिष्ट लंबाई
WHERE SCHEMA_NAME REGEXP '^.{5,10}$'
संबंधित मेटाडेटा कॉलम
INFORMATION_SCHEMA.SCHEMATA में उपयोगी कॉलम:
CATALOG_NAME: कैटलॉग नाम (आमतौर पर 'def')SCHEMA_NAME: डेटाबेस नामDEFAULT_CHARACTER_SET_NAME: डिफ़ॉल्ट चार्टरसेटDEFAULT_COLLATION_NAME: डिफ़ॉल्ट कॉलेशनSQL_PATH: SQL पथ (आमतौर पर NULL)
प्रदर्शन
INFORMATION_SCHEMAक्वेरी मेटाडेटा लॉक ले सकती हैं- बहुत अधिक डेटाबेस (>1000) होने पर धीमी हो सकती हैं
- नियमित मॉनिटरिंग के लिए कैशिंग पर विचार करें
REGEXP शक्तिशाली पैटर्न मिलान प्रदान करता है लेकिन बड़े मेटाडेटा सेट पर फुल स्कैन करता है।