सबसे पहले और सबसे महत्वपूर्ण, जुड़ने की पूरी समझ हासिल करें। सिर्फ भीतर और बायां हिस्सा ही नहीं जुड़ता। जानिए एक क्रॉस जॉइन क्या करता है और एक पूर्ण बाहरी जुड़ता है। उन परिस्थितियों को जानें जिनसे आपको एक विशेष प्रकार के जुड़ाव का चयन करना होगा। यह समझ लें कि वे विनिमेय नहीं हैं और जो क्वेरी बाईं ओर का उपयोग करती है वह आंतरिक परिणाम का उपयोग करने वाले की तुलना में भिन्न परिणाम लौटा सकती है। (एक को लगता है कि यह स्पष्ट होगा, लेकिन मैंने बहुत से सवाल पढ़े हैं, जहाँ लोग अपनी समस्या को कम करके, कुछ बेतरतीब ढंग से अलग-अलग तरीकों से कोशिश करते हैं।)
अगला वास्तव में समुच्चय को समझता है और वे कैसे काम करते हैं। एक मानक तरीके से ग्रुप बाय न करने से मैसकल आपको दूर हो जाएगा। लेकिन समूह को पूरी तरह से सही तरीके से परिभाषित करने के लिए अनुशासन है। यह समझने में आपकी सहायता करेगा कि आप क्या कर रहे हैं और अपने डेटाबेस को अन्य डेटाबेस में आसानी से स्थानांतरित कर सकते हैं।
जानें कि केस स्टेटमेंट क्या करता है।
जब जटिल प्रश्न करना चंक्स में काम करना सीखते हैं। प्रत्येक चंक पर सत्यापित करें कि आपके पास अपेक्षित परिणाम हैं। उदाहरण के लिए, मान लीजिए कि आपको पिछले 3 महीनों में वापस आए आदेशों पर एक रिपोर्टिंग क्वेरी लिखने की ज़रूरत है और वापसी का कारण और साथ ही ग्राहक के लिए संपर्क जानकारी भी है। पहला कदम पिछले तीन महीनों में वापस आए आदेशों को प्राप्त करना है। एक बार जब आप जानते हैं कि आपके पास ठोस है, तो आप वापसी के कारण पर जानकारी जोड़ सकते हैं। एक बार आपके पास वह ठोस हो, तो आप उसे वापस करने वाले ग्राहक को जोड़ सकते हैं। एक बार जब आपके पास वह ठोस हो, तो उस व्यक्ति के लिए संपर्क जानकारी जोड़ें। प्रत्येक चरण में, अपने परिणामों की जांच करें और देखें कि क्या वे समझ में आते हैं। इस मामले में, मैं शायद प्रति आदेश केवल एक रिकॉर्ड के साथ समाप्त करना चाहता हूं। यदि किसी भी मध्यवर्ती चरण में, परिणामों की संख्या ऊपर या नीचे जाती है, तो आप जानते हैं कि आपके पास क्वेरी के साथ एक प्रोब्लम है। कभी-कभी बिल्डिंग ब्लॉक्स में, आप यह सत्यापित करने के लिए अतिरिक्त फ़ील्ड देखना चाहेंगे कि जानकारी सही है या नहीं। मैं इन्हें एक अलग लाइन पर रखता हूं और अगले चरण के माध्यम से काम करने के रूप में उन्हें टिप्पणी करता हूं (मुझे पता है कि मैं सही हूं एक बार उन्हें हटाकर) इसलिए वे फिर से आसानी से देखने के लिए उपलब्ध हैं अगर एक और शिकन जोड़कर क्वेरी को मजाकिया बना दिया। आप अपने परिणामों की तरह क्या दिखना चाहिए, इसकी गहन समझ के बिना आप सही तरीके से जटिल क्वेरी नहीं कर सकते। यह सोचकर कि यह ठीक है क्योंकि कुछ परिणाम लौटाए गए हैं, यह गारंटी देता है कि आपके पास गलत परिणाम हैं जो समय का एक अच्छा हिस्सा है। दाएं) तो वे आसानी से फिर से देखने के लिए उपलब्ध हैं यदि एक और शिकन जोड़कर क्वेरी को मजाकिया बना दिया जाए। आप अपने परिणामों की तरह क्या दिखना चाहिए, इसकी गहन समझ के बिना आप सही तरीके से जटिल क्वेरी नहीं कर सकते। यह सोचकर कि यह ठीक है क्योंकि कुछ परिणाम लौटाए गए हैं, यह गारंटी देता है कि आपके पास गलत परिणाम हैं जो समय का एक अच्छा हिस्सा है। दाएं) तो वे आसानी से फिर से देखने के लिए उपलब्ध हैं यदि एक और शिकन जोड़कर क्वेरी को मजाकिया बना दिया जाए। आप अपने परिणामों की तरह क्या दिखना चाहिए, इसकी गहन समझ के बिना आप सही तरीके से जटिल क्वेरी नहीं कर सकते। यह सोचकर कि यह ठीक है क्योंकि कुछ परिणाम लौटाए गए हैं, यह गारंटी देता है कि आपके पास गलत परिणाम हैं जो समय का एक अच्छा हिस्सा है।
यहां कुछ बुनियादी चीजों की एक सूची दी गई है, जिनके बारे में सोचने के बिना आपको SQL में क्या करना चाहिए:
- पहले एक सीधे अप का चयन करें जिसमें कोई जोड़ नहीं है (और कोई चयन नहीं *) लेकिन चयन पर शर्तों के साथ
- आपको पता होना चाहिए कि दो या दो से अधिक तालिकाओं को कैसे मिलाएं और रिकॉर्ड प्राप्त करें जो सभी तालिकाओं में हैं
- आपको पता होना चाहिए कि दो या दो से अधिक तालिकाओं को कैसे मिलाया जाए और वे रिकॉर्ड प्राप्त करें जो सभी तालिकाओं में हैं, लेकिन एक से कई संबंधों के कई पक्षों के साथ तालिका से केवल एक रिकॉर्ड लौटाएं
- आपको एक तालिका में रिकॉर्ड प्राप्त करने में सक्षम होना चाहिए, लेकिन संबंधित तालिका में नहीं
- आपको किसी रिपोर्ट के लिए डेटा एकत्र करने में सक्षम होना चाहिए
- आपको एक तालिका में एक रिकॉर्ड सम्मिलित करने में सक्षम होना चाहिए
- आपको एक तालिका में एक रिकॉर्ड अपडेट करने में सक्षम होना चाहिए
- आपको एक तालिका में एक रिकॉर्ड को हटाने में सक्षम होना चाहिए
- आपको कर्सर के बिना तालिका में रिकॉर्ड का एक समूह सम्मिलित करने में सक्षम होना चाहिए
- आपको एक कर्सर के बिना तालिका में रिकॉर्ड के एक समूह को अपडेट करने में सक्षम होना चाहिए
- आपको एक कर्सर के बिना तालिका में रिकॉर्ड के समूह को हटाने में सक्षम होना चाहिए
- आपको एक लेन-देन में कई क्रियाएं करने और त्रुटि के जाल को संभालने में सक्षम होना चाहिए
- आपको रिकॉर्ड्स का संघ बनाने में सक्षम होना चाहिए और पता होना चाहिए कि UNION वाइस यूनिअन का उपयोग कब करना है
- आपको कुछ मानदंडों के आधार पर एक फ़ील्ड के डेटा को अलग करने में सक्षम होना चाहिए (CASE का उपयोग करके)
एक बार जब आप अपने मूल एसक्यूएल ज्ञान के साथ सहज महसूस करते हैं, तो अपने डेटाबेस संरचना को जानें। मैं बहुत जटिल डीबीएस के खिलाफ जटिल प्रश्न लिख सकता हूं मैं अन्य लोगों की तुलना में बहुत तेजी से समर्थन करता हूं क्योंकि मैं संरचना को समझता हूं और यह सोचने के लिए नहीं है कि चीजें कहां संग्रहीत हैं। यदि आप तालिका संरचना और विदेशी मुख्य संबंधों को समझते हैं और जहां लुकअप मान संग्रहीत किए जाते हैं और कॉलम का मतलब है (न केवल उनका नाम, बल्कि उनमें कौन सा डेटा है) तो आप उस डेटाबेस को क्वेरी करने में विशेषज्ञ हो सकते हैं। किसी भी नई नौकरी में पहली बात मैं डीबी संरचना को अच्छी तरह से समझता हूं।