अब तक, आप SQL के सभी फायदों के बारे में जानते हैं और एक अनुभवी डेटा विश्लेषक, डेटा इंजीनियर, या डेटा वैज्ञानिक हैं। आप विभिन्न SQL डायलेक्ट्स के बारे में जानते हैं, आप SQL डेटा आयात करने में कुशल हैं, और आप बेसिक SQL क्वेरी लिखने में निपुण हैं। लेकिन क्या आप अपनी क्षमताओं को अगले स्तर तक ले जाना चाहते हैं? यह करें।
मध्यम-स्तरीय SQL अवधारणाएँ
SQL उपभाषाएँ जानें
SQL में चार प्रमुख उपभाषाएँ होती हैं—ये अलग-अलग कार्यों को संदर्भित करती हैं, लेकिन सभी SQL भाषा का ही हिस्सा हैं:
1. DDL (डेटा डेफिनिशन लैंग्वेज)
इन स्टेटमेंट्स का उपयोग टेबल्स और डेटाबेस बनाने तथा फ़ील्ड या टेबल की विशेषताएँ परिभाषित करने के लिए किया जाता है। इस श्रेणी में आने वाले कमांड्स हैं CREATE, ALTER, और DROP।
2. DML (डेटा मैनिपुलेशन लैंग्वेज)
इस श्रेणी के स्टेटमेंट्स का उपयोग डेटा अपडेट करने या टेबल्स में डेटा जोड़ने/हटाने के लिए किया जाता है। इस श्रेणी के कमांड्स हैं UPDATE, DELETE, और INSERT।
3. DCL (डेटा कंट्रोल लैंग्वेज)
ये SQL स्टेटमेंट्स इस बात को नियंत्रित करने के लिए उपयोग होते हैं कि डेटा तक किसकी पहुँच हो। इस श्रेणी में आने वाले कमांड्स हैं GRANT और REVOKE।
4. TCL (ट्रांजैक्शन कंट्रोल लैंग्वेज)
इस भाषा का उपयोग डेटा को कमिट और रिस्टोर करने के लिए होता है। COMMIT और ROLLBACK इस श्रेणी में आते हैं।
5. DQL (डेटा क्वेरी लैंग्वेज)
यह SQL सर्वर से डेटा प्राप्त करने के लिए है। SELECT स्टेटमेंट इस श्रेणी में आता है।
ये आपको डरावने लग सकते हैं, लेकिन चिंता न करें! SQL सीखने के लिए एक बेहद सुव्यवस्थित और सीधी भाषा है, खासकर क्योंकि आप SQL से डेटा विज़ुअलाइज़ेशन नहीं बना सकते—यह पूरी तरह टेबल बनाने, डेटा को व्यवस्थित और साफ करने, और सही प्रश्न पूछना सीखने पर केंद्रित है।
यूनियंस और जॉइन्स
अक्सर, जिस डेटा की आपको ज़रूरत होती है, वह एक बड़ी टेबल में नहीं, बल्कि कई टेबल्स में बँटा होता है। SQL की मदद से, आप इन टेबल्स को जोड़कर सारा डेटा एक जगह ला सकते हैं। चूँकि UNION और JOIN टेबल्स से संबंधित हैं, ये FROM स्टेटमेंट में आते हैं।
UNION मूलतः समान कॉलम्स वाली दो टेबल्स को एक-दूसरे के ऊपर स्टैक कर देता है। यह उन सेल्स ट्रांज़ैक्शन डेटा के लिए उपयोगी है जो महीने, तिमाही, या वर्ष के हिसाब से अलग-अलग टेबल्स में बँटा हो।
आम तौर पर इस्तेमाल किए जाने वाले कई प्रकार के JOIN होते हैं—Inner, Outer, Left, और Exception। सरल शब्दों में, ये उन टेबल्स से अलग-अलग संयोजन में पंक्तियाँ लौटाते हैं जिन्हें जोड़ा जा रहा है।
अतिरिक्त संसाधन:
मध्यम-स्तरीय SQL सिंटैक्स
अब तक, आप SQL सिंटैक्स की बुनियादी बातें जानते हैं, जैसे SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, और LIMIT। आप Database Design में दक्ष हैं और SQL के order of execution को भी समझते हैं—कि क्वेरी जिस तरह लिखी जाती है, उससे अलग तरह से प्रोसेस होती है।
अब समय है अधिक उन्नत सिंटैक्स सीखने का।
एग्रीगेशन: SELECT, GROUP BY, और HAVING
Excel की तरह, आप SQL का उपयोग अपने डेटा को sum, average, maximum, minimum, और count द्वारा एग्रीगेट करने के लिए कर सकते हैं। एग्रीगेशन शुरुआती खोज, विश्लेषण, या ऑडियंस के सामने प्रस्तुत करते समय उपयोगी होते हैं। आप इन्हें SELECT स्टेटमेंट में एक साधारण एग्रीगेशन लौटाने के लिए कर सकते हैं, या GROUP BY स्टेटमेंट का उपयोग कर अपने डेटा से Excel के “पिवट टेबल” जैसा आउटपुट बना सकते हैं।
SELECT स्टेटमेंट में एग्रीगेशन का उपयोग करने से केवल एक साधारण कैलकुलेशन लौटेगा; उदाहरण के लिए, यदि आप SUM(column_name) का उपयोग करते हैं, तो आपकी क्वेरी एक मान लौटाएगी जो उस कॉलम के सभी मानों के योग का प्रतिनिधित्व करेगा।
आप श्रेणीबद्ध (categorical) डेटा के आधार पर भी एग्रीगेशन कर सकते हैं। उदाहरण के लिए, यदि आपके पास देशभर के फलों की बिक्री का डेटा है, तो आप सभी बिक्री का योग उत्पाद प्रकार के अनुसार, या औसत कीमत राज्य के अनुसार समूहित कर सकते हैं। इसके लिए GROUP BY स्टेटमेंट की आवश्यकता होती है, जो WHERE स्टेटमेंट के बाद आता है। आपको उस श्रेणीबद्ध कॉलम को निर्दिष्ट करना होगा जिसके आधार पर आप एग्रीगेशन “ग्रुप” करना चाहते हैं, और उन कॉलम्स को अपने SELECT स्टेटमेंट में भी शामिल करना होगा।
जब आपका डेटा साफ़-सुथरे तरीके से समूहित हो जाए और किसी श्रेणीबद्ध चर के साथ एग्रीगेशन जोड़ा जाए, तो आप GROUP BY के बाद आने वाले HAVING स्टेटमेंट का उपयोग करके उन एग्रीगेशन्स पर फ़िल्टर लगा सकते हैं। यह तब उपयोगी होता है जब आप अपनी क्वेरी को और संकीर्ण करना चाहते हैं; जैसे कि केवल उन फल दुकानों का चयन करना जिनकी औसत बिक्री कुल $100,000 से अधिक है।
अतिरिक्त संसाधन:
- SQL | String Functions | GeeksforGeeks
- SQL Aggregate Functions | Mode
- SQL GROUP BY | W3 Schools
- SQL HAVING | TutorialsPoint
CASE स्टेटमेंट्स
SQL का CASE स्टेटमेंट Excel के IF() फ़ंक्शन जैसा होता है—यदि किसी कॉलम में डेटा एक निश्चित मापदंड से मेल खाता है, तो “यह” लौटाएँ। यह तब उपयोगी होता है जब मात्रात्मक डेटा को श्रेणीबद्ध के रूप में पुनर्वर्गीकृत करना हो, जैसे मानों के सेट को “High”, “Medium”, या “Low” में बाँटना। CASE स्टेटमेंट्स SELECT स्टेटमेंट में आते हैं।
यह भी देखें:
सबक्वेरीज़
सबक्वेरीज़ कई तरीकों से उपयोग की जा सकती हैं, लेकिन आमतौर पर FROM या WHERE स्टेटमेंट में मिलती हैं। ये आपके डेटा से एक छोटी, अस्थायी टेबल बनाती हैं, जिसे आप फिर किसी अलग तरीके से क्वेरी करने के लिए एक नई टेबल की तरह उपयोग कर सकते हैं।
यह भी देखें:
तिथियाँ और समय
कई अन्य डेटा भाषाओं की तरह, तिथियों और समय के साथ काम करना पेचीदा हो सकता है। कभी-कभी तिथियाँ “strings” या सूचनाओं के टुकड़ों की तरह व्यवहार करती हैं। कभी-कभी उन्हें वास्तविक तिथियों की तरह ट्रीट किया जा सकता है, जहाँ SQL सिंटैक्स डेटा को महीनों या वर्षों जैसी इकाइयों में तोड़ सकता है। चूँकि यह करने के कई तरीके हैं, ये फ़ंक्शन्स अधिक उन्नत SQL सिंटैक्स माने जाते हैं।
यह भी देखें:
अपनी SQL सोच को आगे बढ़ाएँ
मानने योग्य SQL दिशानिर्देश
वास्तविक दुनिया में काम करते समय, व्यावसायिक प्रश्न अक्सर साफ़-सुथरे तरीके से SQL क्वेरी में नहीं बदलते। इसलिए आपको एक भी पंक्ति कोड लिखने से पहले सावधानी से आकलन करना चाहिए कि क्या ज़रूरी है। SQL अभ्यास करते समय पालन करने के लिए कुछ अच्छे दिशानिर्देश यहाँ दिए गए हैं।
सबसे पहले अपने व्यावसायिक प्रश्न को कमेंट के रूप में लिखें
कोड कमेंटिंग का उपयोग करके पहले अपनी क्वेरी पर “ब्रेनस्टॉर्म” करें—आप किस प्रश्न का उत्तर देने की कोशिश कर रहे हैं? किन हिस्सों और तत्वों पर आपको ध्यान देना है? यह आपकी SQL क्वेरी का मार्गदर्शन करेगा।
कमेंटिंग दो तरह की होती है, इनलाइन और मल्टीलाइन।
--इनलाइन में दो हाइफ़न होते हैं और यह कोड की एक ही लाइन में रहती है—छोटी, त्वरित टिप्पणियों के लिए अच्छी
/*मल्टीलाइन कमेंटिंग कुछ ऐसी दिखती है।
यह किसी क्वेरी के उद्देश्य, लेखक, आदि को समझाने वाले बैनर बनाने के लिए अच्छी होती है*/
अपनी क्वेरी का खाका बनाएँ
टाइप करना शुरू करने से पहले, तय करें कि आपकी क्वेरी के लिए किन हिस्सों की आवश्यकता होगी। आपको हमेशा SELECT और FROM स्टेटमेंट्स की ज़रूरत होगी—लेकिन और क्या चाहिए हो सकता है? क्या आपको WHERE स्टेटमेंट से डेटा फ़िल्टर करना है? क्या आपको एग्रीगेट फ़ंक्शन्स का उपयोग करना होगा?
अपना उद्देश्य पाने के अलग-अलग तरीके समझें
जहाँ संभव हो, एक ही काम करने के कई तरीके रखें। इससे आप अपनी गुणवत्ता जाँच सकते हैं और मान्य कर सकते हैं कि आपको वही नतीजे मिलते हैं या नहीं। उदाहरण के लिए, आप किसी कॉलम में सबसे बड़ा मान या तो STATEMENT में MAX() फ़ंक्शन का उपयोग करके पा सकते हैं, या ORDER BY से डेटा को सॉर्ट कर सकते हैं और फिर LIMIT से केवल एक पंक्ति लौटाने की सीमा लगा सकते हैं।
अपनी क्वेरी का परीक्षण करें
अपनी क्वेरी को एक-एक लाइन करके बनाएं और यह जाँचने के लिए बार-बार चलाएँ कि यह काम कर रही है। टुकड़ों को एक-एक करके जोड़ने से, अगर यह काम न करे तो आपको अपने कोड की हर लाइन पर वापस जाने की ज़रूरत कम पड़ती है।
अपनी टेबल की प्रोफाइल बनाएँ
क्वेरी चलाना शुरू करने के लिए, पहले आपको उसके भीतर मौजूद डेटा तत्वों को समझना होगा। पूरी डेटाबेस को देखकर शुरू करें; फिर, एक बार में कुछ कॉलम देखें। मानों की रेंज—श्रेणीबद्ध और मात्रात्मक दोनों—खोजें ताकि आपको टेबल में निहित जानकारी का अंदाज़ा हो।
अनुमानों की सूची रखें
किसी भी तरह का डेटा कोड लिखते समय, आपको हमेशा अनुमानों की एक सूची बनानी चाहिए ताकि अपनी सीमाएँ और निर्भरताएँ आसानी से ट्रैक कर सकें।
डेटा डिक्शनरी रखें
उन डेटा तत्वों के लिए एक केंद्रीय भंडार तैयार करें जिनका आप उपयोग कर रहे हैं, जिसमें विश्लेषण में इस्तेमाल की गई अलग-अलग टेबल्स और फ़ील्ड्स के विवरण हों। इसमें प्रत्येक कॉलम के अलग-अलग डेटा प्रकार (character, integer, money, date, आदि) और कॉलम का संक्षिप्त विवरण शामिल हो सकता है।
डेटा गुणवत्ता जाँच के लिए हमेशा समय निर्धारित करें
विश्लेषण आपकी क्वेरी लिखने पर खत्म नहीं होता। आपको अब भी अपने परिणामों को समझना और गुणवत्ता जाँच करना होता है ताकि यह सुनिश्चित हो सके कि आपका विश्लेषण सही है। एक ही परिणाम पाने के अलग-अलग तरीके आज़माएँ और देखें कि क्या कुछ अलग मिलता है—यही वह समय है जब इनलाइन कमेंटिंग फिर काम आती है!
सैंडबॉक्स में अभ्यास करें
किसी भी कोडिंग भाषा को सीखने के सबसे अच्छे तरीकों में से एक है “सैंडबॉक्स” ढूँढना जहाँ आप खेल-खेल में सीख सकें। आप अपना कोड टेस्ट कर पाएँगे, देखेंगे कि यह चलता है या नहीं, उसे संशोधित करेंगे, फिर चलाएँगे—बार-बार—जब तक कि आप कोडिंग सिद्धांतों और सिंटैक्स में सहज न हो जाएँ। शुरुआत में आपको थोड़ी और मार्गदर्शिका चाहिए हो सकती है—ऐसा प्रोजेक्ट ढूँढें जिसमें स्पष्ट निर्देश और समाधान कोड हो ताकि आप अपना काम जाँच सकें।
यहाँ कुछ अच्छे अभ्यास संसाधन हैं:
अभी के लिए बस इतना ही। आशा है यह आपके काम आया होगा—अभ्यास करते रहें और सीखते रहें!