समस्या क्या है?
किसी डेटाबेस के लिए क्वेरी लिखते समय आप नए हो सकते हैं, या जो अक्सर बदलता रहता है, हो सकता है कि आप किसी विशिष्ट डेटाबेस में सभी तालिकाओं, या डेटाबेस में कॉलम को खोजने के लिए, या तालिका या कॉलम खोजने के लिए एक त्वरित जांच चलाना चाहें। मौजूद है।
यह एक समस्या क्यों है?
स्कीमा को समझना और उसमें कौन सी तालिकाएं हैं, कुशल SQL लिखने में मदद करती हैं और यह देखने के लिए कि स्कीमा नाम या कॉलम नाम सही है या नहीं, कई बार चल रहे प्रश्नों से बचने में मदद करता है।
यह ट्यूटोरियल इन समस्याओं को हल करने में मदद करेगा।
सूचना स्कीमा का उपयोग करना
डेटा स्रोत पर मेटाडेटा को क्वेरी करना किसी तालिका के मेकअप को निर्धारित करने का सबसे आसान तरीका है यदि आपको पहले से इसकी समझ नहीं है। Microsoft SQL सर्वर इस मेटाडेटा को प्राप्त करने के लिए कई विधियों में से एक के रूप में एक सूचना स्कीमा दृश्य प्रदान करता है। जैसा कि उनके समर्थन दस्तावेज में कहा गया है, "सूचना स्कीमा दृश्य SQL सर्वर मेटाडेटा का एक आंतरिक, सिस्टम तालिका-स्वतंत्र दृश्य प्रदान करते हैं। सूचना स्कीमा दृश्य अनुप्रयोगों को सही ढंग से काम करने में सक्षम बनाता है, हालांकि अंतर्निहित सिस्टम तालिकाओं में महत्वपूर्ण परिवर्तन किए गए हैं।"
डेटा स्रोत में तालिकाओं के मेकअप को निर्धारित करने में मदद करने वाली क्वेरी चलाने के लिए हम सूचना स्कीमा में कुछ दृश्यों का उपयोग करेंगे।
TABLES
दिखाने के लिए और COLUMNS
डेटाबेस में या TABLES
find ढूंढें और COLUMNS
।
यह पहली क्वेरी आपके द्वारा क्वेरी किए जा रहे डेटाबेस में सभी तालिकाओं को वापस कर देगी।
SELECT
TABLE_NAME
FROM
INFORMATION_SCHEMA.TABLES
दूसरी क्वेरी आपके द्वारा क्वेरी किए जा रहे डेटाबेस के सभी स्तंभों और तालिकाओं की सूची लौटाएगी।
SELECT
TABLE_NAME,
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
या, आप केवल COLUMNS
. के लिए भी क्वेरी कर सकते हैं एक विशिष्ट तालिका से और हमारे डेटाबेस में विशिष्ट तालिका 'एल्बम' से कॉलम नाम लौटाएं।
SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'Album'
इस अगली क्वेरी से आप पता लगा सकते हैं कि कोई TABLE
है या नहीं डेटा स्रोत में जो किसी प्रकार के खोज पैरामीटर से मेल खाता है।
IF EXISTS(
SELECT
*
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_NAME = 'Album'
)
SELECT 'found' AS search_result ELSE SELECT 'not found' AS search_result;
यदि हमारे डेटाबेस में टेबल 'एल्बम' मौजूद है तो क्वेरी 'मिला' शब्द वापस कर देगी।
अब इसे थोड़ा और आगे ले जाने के लिए, आप इस क्वेरी का उपयोग यह पता लगाने के लिए कर सकते हैं कि कोई COLUMN
है या नहीं डेटा स्रोत में जो किसी प्रकार के खोज पैरामीटर से मेल खाता है।
IF EXISTS(
SELECT
*
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
COLUMN_NAME = 'Title'
)
SELECT 'found' AS search_result ELSE SELECT 'not found' AS search_result;
INFORMATION_SCHEMA
. का उपयोग करना जब आप अपनी क्वेरी बनाते हैं तो डेटा स्रोत में क्या है, यह निर्धारित करने का एक विश्वसनीय तरीका हो सकता है।
Microsoft SQL सर्वर सिस्टम सूचना स्कीमा दृश्यों के बारे में अधिक जानकारी के लिए, कृपया उनके समर्थन दस्तावेज़ों से अधिक पढ़ें।