एसक्यूएल सरलीकृत: सीटीई के साथ मॉड्यूलर और समझने योग्य क्वेरी तैयार करना - केडीनगेट्स

एसक्यूएल सरलीकृत: सीटीई के साथ मॉड्यूलर और समझने योग्य क्वेरी तैयार करना - केडीनगेट्स

स्रोत नोड: 3084928

एसक्यूएल सरलीकृत: सीटीई के साथ मॉड्यूलर और समझने योग्य क्वेरीज़ तैयार करना
लेखक द्वारा छवि 
 

डेटा की दुनिया में, SQL अभी भी डेटाबेस के साथ इंटरैक्ट करने की भाषा के रूप में खड़ा है। 

आज भी यह डेटा से निपटने के लिए सबसे अधिक उपयोग की जाने वाली भाषाओं में से एक है और इसे अभी भी किसी भी अच्छे डेटा पेशेवर के लिए जरूरी माना जाता है। 

हालाँकि, जिसने भी जटिल SQL प्रश्नों के साथ काम किया है, वह जानता है कि वे जल्दी से बोझिल जानवरों में बदल सकते हैं - पढ़ना, बनाए रखना या पुन: उपयोग करना मुश्किल है। 

यही कारण है कि आज एसक्यूएल को जानना ही पर्याप्त नहीं है, हमें प्रश्नों को तैयार करने में भी कुशल होना होगा। और ये असल में एक तरह की कला है. 

यहीं पर कॉमन टेबल एक्सप्रेशन (सीटीई) चलन में आते हैं, जो क्वेरी लिखने की कला को अधिक संरचित और सुलभ शिल्प में बदल देते हैं।

तो आइए एक साथ मिलकर जानें कि पठनीय और पुन: प्रयोज्य प्रश्नों को कैसे कोड किया जाए।

यदि आप सोच रहे हैं कि CTE क्या है, तो आप सही लेख पर हैं। 

कॉमन टेबल एक्सप्रेशन (CTE) एक अस्थायी परिणाम सेट है जिसे एकल SQL कथन के निष्पादन दायरे में परिभाषित किया गया है। 

 

वे अस्थायी सारणी हैं जिन्हें एक ही क्वेरी के भीतर कई बार संदर्भित किया जा सकता है और आम तौर पर एसक्यूएल कोड की पठनीयता और संगठन को बढ़ाने के अंतिम लक्ष्य के साथ जटिल जोड़ों और उपक्वेरी को सरल बनाने के लिए उपयोग किया जाता है।

इसलिए वे जटिल प्रश्नों को सरल भागों में तोड़ने के लिए शक्तिशाली उपकरण हैं।

यहां बताया गया है कि आपको सीटीई का उपयोग करने पर विचार क्यों करना चाहिए:

  • प्रतिरूपकता: आप जटिल तर्क को पढ़ने योग्य टुकड़ों में तोड़ सकते हैं।
  • पठनीयता: यह SQL क्वेरी के प्रवाह को समझना आसान बनाता है।
  • पुनर्प्रयोग: दोहराव से बचने के लिए सीटीई को एक ही प्रश्न में कई बार संदर्भित किया जा सकता है।

जादू विद क्लॉज से शुरू होता है, जो आपकी मुख्य क्वेरी से पहले होता है और उपनामों के साथ विभिन्न अस्थायी तालिकाओं (सीटीई) को परिभाषित करता है।

इसलिए, हमें अपने CTE को परिभाषित करने के लिए हमेशा अपनी क्वेरी "WITH" कमांड से शुरू करनी होगी। CTE का उपयोग करके, हम किसी भी जटिल SQL क्वेरी को इसमें विभाजित कर सकते हैं: 

- छोटी अस्थायी तालिकाएँ जो संबंधित चर की गणना करती हैं। 

- एक अंतिम तालिका जो केवल उन वेरिएबल्स को लेती है जिन्हें हम अपने आउटपुट के रूप में चाहते हैं।

और यह बिल्कुल वही मॉड्यूलर दृष्टिकोण है जो हम किसी भी कोड में चाहते हैं!

 

एसक्यूएल सरलीकृत: सीटीई के साथ मॉड्यूलर और समझने योग्य क्वेरीज़ तैयार करना
लेखक द्वारा छवि
 

इसलिए हमारे प्रश्नों में सीटीई का उपयोग हमें इसकी अनुमति देता है:

- एक अस्थायी तालिका को एक बार निष्पादित करें और इसे कई बार संदर्भित करें।

- पठनीयता में सुधार करें और जटिल तर्क को सरल बनाएं।

- कोड पुन: प्रयोज्यता और मॉड्यूलर डिज़ाइन को बढ़ावा देना।

इसे बेहतर ढंग से समझने के लिए, हम बार्सिलोना में Airbnb लिस्टिंग का एक व्यावहारिक उदाहरण ले सकते हैं। 

कल्पना कीजिए कि हम आस-पड़ोस के आधार पर लिस्टिंग के प्रदर्शन का विश्लेषण करना चाहते हैं और इसकी तुलना शहर के समग्र प्रदर्शन से करना चाहते हैं। आपको पड़ोस, व्यक्तिगत अपार्टमेंट, मेजबान और मूल्य निर्धारण के बारे में जानकारी एकत्र करने की आवश्यकता होगी।

इसका उदाहरण देने के लिए, हम इसका उपयोग करेंगे इनसाइडएयरबीएनबी बार्सिलोना की तालिका, जो इस प्रकार दिखती है: 

 

एसक्यूएल सरलीकृत: सीटीई के साथ मॉड्यूलर और समझने योग्य क्वेरीज़ तैयार करना
 

एक अनुभवहीन दृष्टिकोण आपको नेस्टेड सबक्वेरीज़ बनाने के लिए प्रेरित कर सकता है जो जल्द ही निम्नलिखित की तरह एक रखरखाव दुःस्वप्न बन जाएगा:

लेखक द्वारा कोड

इसके बजाय, हम अपनी क्वेरी को तार्किक खंडों में विभाजित करने के लिए सीटीई का उपयोग कर सकते हैं - प्रत्येक पहेली के एक हिस्से को परिभाषित करता है।

  • पड़ोस डेटा: आस-पड़ोस के आधार पर डेटा को सारांशित करने के लिए एक CTE बनाएं।
  • अपार्टमेंट और मेज़बान जानकारी: अपार्टमेंट और होस्ट के बारे में विवरण के लिए सीटीई को परिभाषित करें।
  • शहर-व्यापी मेट्रिक्स: तुलना के लिए शहर-स्तरीय आंकड़े इकट्ठा करने के लिए एक और सीटीई।
  • अंतिम सभा: डेटा को सुसंगत रूप से प्रस्तुत करने के लिए CTE को अंतिम चयन कथन में संयोजित करें।

 

एसक्यूएल सरलीकृत: सीटीई के साथ मॉड्यूलर और समझने योग्य क्वेरीज़ तैयार करना
लेखक द्वारा छवि
 

और हम निम्नलिखित प्रश्न के साथ समाप्त होंगे:

लेखक द्वारा कोड

सीटीई का उपयोग करके, हम संभावित रूप से राक्षसी एकल क्वेरी को डेटा मॉड्यूल के एक संगठित सेट में बदल देते हैं। यह मॉड्यूलर दृष्टिकोण SQL कोड को अधिक सहज और परिवर्तनों के अनुकूल बनाता है। 

यदि नई आवश्यकताएं सामने आती हैं, तो आप संपूर्ण क्वेरी को ओवरहाल किए बिना सीटीई को समायोजित या जोड़ सकते हैं।

एक बार जब आप अपना सीटीई स्थापित कर लेते हैं, तो आप तुलनात्मक विश्लेषण करने के लिए उनका पुन: उपयोग कर सकते हैं। उदाहरण के लिए, यदि आप शहर-व्यापी मेट्रिक्स के विरुद्ध पड़ोस डेटा की तुलना करना चाहते हैं, तो आप अपने सीटीई को जॉइन ऑपरेशन की श्रृंखला में संदर्भित कर सकते हैं। 

इससे न केवल समय की बचत होती है बल्कि आपका कोड भी कुशल रहता है, क्योंकि आपको एक ही क्वेरी को दो बार दोहराना नहीं पड़ेगा!

सीटीई इस सिद्धांत का प्रमाण है कि एक छोटी सी संरचना प्रोग्रामिंग में बहुत आगे तक जाती है। सीटीई को अपनाकर, आप स्पष्ट, अधिक रखरखाव योग्य और पुन: प्रयोज्य एसक्यूएल प्रश्न लिख सकते हैं। 

यह क्वेरी विकास प्रक्रिया को सुव्यवस्थित करता है और जटिल डेटा पुनर्प्राप्ति तर्क को दूसरों तक संचारित करना आसान बनाता है।

याद रखें, अगली बार जब आप खुद को मल्टी-जॉइन, नेस्टेड सबक्वेरी मॉन्स्टर लिखना शुरू करने जा रहे हों, तो इसे सीटीई के साथ तोड़ने पर विचार करें। 

आपका भविष्य स्वयं-और कोई भी व्यक्ति जो आपका कोड पढ़ेगा-आपको धन्यवाद देगा।
 
 

जोसेप फेरर बार्सिलोना से एक एनालिटिक्स इंजीनियर है। उन्होंने भौतिकी इंजीनियरिंग में स्नातक किया है और वर्तमान में मानव गतिशीलता पर लागू डेटा साइंस क्षेत्र में काम कर रहे हैं। वह डेटा विज्ञान और प्रौद्योगिकी पर केंद्रित अंशकालिक सामग्री निर्माता हैं। आप उससे संपर्क कर सकते हैं लिंक्डइन, ट्विटर or मध्यम.

समय टिकट:

से अधिक केडनगेट्स

KDnuggets News, 8 फरवरी: डेटा विश्लेषकों के लिए SQL और Python साक्षात्कार प्रश्न • नकली डेटा वैज्ञानिकों का पता लगाने के लिए 20 प्रश्न (उत्तर के साथ): ChatGPT संस्करण, भाग 2

स्रोत नोड: 1947661
समय टिकट: फ़रवरी 8, 2023