कंप्यूटर, फ़ाइल प्रकार
एसक्यूएल अलग: विवरण, उदाहरण, गुण
अक्सर जब तालिका से जानकारी प्राप्त करने के लिए एसक्यूएल का उपयोग करते हैं, तो उपयोगकर्ता अनावश्यक डेटा प्राप्त करता है, जिसमें बिल्कुल समान डुप्लिकेट पंक्तियां होती हैं। इस स्थिति को बाहर करने के लिए, चुनें खंड में SQL विशिष्ट तर्क का उपयोग करें। इस अनुच्छेद में, हम इस तर्क का उपयोग करने के उदाहरणों पर विचार करेंगे, साथ ही साथ स्थितियों में तर्क को छोड़ना बेहतर होगा।
विशिष्ट उदाहरणों पर विचार करने से पहले, हम डेटाबेस में कुछ आवश्यक तालिकाओं का निर्माण करेंगे।
तालिकाओं की तैयारी
कल्पना कीजिए कि हमारे पास दो तालिकाओं में प्रस्तुत वॉलपेपर के बारे में डेटाबेस संग्रहीत जानकारी है यह ओबियो टेबल (वॉलपेपर) फ़ील्ड आईडी (अद्वितीय पहचानकर्ता), प्रकार (वॉलपेपर का प्रकार - कागज, विनाइल, आदि), रंग, संरचना और मूल्य के साथ है। और ओस्टैटकी टेबल (बचा हुआ) फ़ील्ड आईडी_ओबॉय के साथ (ओबियो तालिका में अद्वितीय पहचानकर्ता का संदर्भ) और गिनती (गोदाम में रोल की संख्या)।
डेटा के साथ तालिकाओं को भरें वॉलपेपर के साथ तालिका में हम 9 प्रविष्टियां जोड़ते हैं:
Oboi | ||||
आईडी | टाइप | रंग | struct | कीमत |
1 | कागज़ | बहुरंगा | उभरे | 56.9 |
2 | डबल-लेयर पेपर | बेज | चिकना | 114.8 |
3 | विनाइल | नारंगी | उभरे | 504 |
4 | गैर बुने हुए कपड़े | बेज | उभरे | 1020.9 |
5 | डबल-लेयर पेपर | बेज | चिकना | 150.6 |
6 | कागज़ | बहुरंगा | चिकना | 95.4 |
7 | विनाइल | भूरा | चिकना | 372 |
8 | गैर बुने हुए कपड़े | सफेद | उभरे | 980.1 |
9 | कपड़ा | गुलाबी | चिकना | 1166.5 |
रहने वालों के साथ तालिका में नौ रिकॉर्ड भी हैं:
Ostatki | |
id_oboi | गिनती |
1 | 8 |
2 | 12 |
3 | 24 |
4 | 9 |
5 | 16 |
6 | 7 |
7 | 24 |
8 | 32 |
9 | 11 |
एसक्यूएल में अलग-अलग कैसे उपयोग करें का वर्णन करके शुरू करते हैं।
चयन खंड में अलग रखें
प्रश्नों में चयन कीवर्ड के तुरंत बाद अलग तर्क रखा जाना चाहिए। यह चुनिंदा क्लॉज में निर्दिष्ट सभी कॉलमों पर तत्काल लागू किया जाता है, क्योंकि यह क्वेरी के परिणाम से बिल्कुल एक समान पंक्तियां शामिल नहीं करेगा। इस प्रकार, SQL क्वेरी लिखते समय "विशिष्ट चुनें" निर्दिष्ट करने के लिए पर्याप्त है एकमात्र अपवाद कुल कार्य के भीतर अलग-अलग का उपयोग होता है, जिसे थोड़ी देर बाद माना जाएगा।
इसे याद किया जाना चाहिए कि अधिकांश डीबीएमएस आपके अनुरोध को इस तरह स्वीकार नहीं करता है:
विशिष्ट Ostatki.Count चुनें, अलग Oboi। * ओबोई से इन्नेर ओस्टाटीकी ओबाई.आईडी = ओस्टैटकी.आईडी_ओबॉय |
यहां, तर्क कई बार निर्दिष्ट होता है या एक बार निर्दिष्ट होता है, लेकिन दूसरे, तीसरे या अन्य चयन करने योग्य स्तंभ से पहले। सिंटैक्स में त्रुटियों के संदर्भ के साथ आप एक त्रुटि प्राप्त करेंगे
मानक प्रश्नों में अलग-अलग का उपयोग करना
यह स्पष्ट है कि तालिकाओं की संरचना और उनके भरने के समुचित निर्माण के साथ, एक ही टेबल परिस्थितियों में, जब बिल्कुल समान स्ट्रिंग्स का सामना करना पड़ता है, तो बाहर रखा जाता है। इसलिए, एक तालिका से चयन के साथ "विशिष्ट चुनें" क्वेरी का निष्पादन व्यावहारिक रूप से अव्यावहारिक है
एक ऐसी स्थिति की कल्पना करें जहां हमें यह जानने की आवश्यकता है कि हमारे पास कितने वॉलपेपर हैं, बस सुविधा के लिए, प्रकार के आधार पर सॉर्ट करें:
चुनें ओबोइ.प्रकार ऑब्बो ऑर्डर से प्रकार के अनुसार |
और हमें परिणाम मिलता है:
टाइप |
कागज़ |
कागज़ |
डबल-लेयर पेपर |
डबल-लेयर पेपर |
विनाइल |
विनाइल |
कपड़ा |
गैर बुने हुए कपड़े |
गैर बुने हुए कपड़े |
जैसा कि आप देख सकते हैं, तालिका में डुप्लिकेट पंक्तियाँ हैं यदि हम अलग खंड का चयन करें:
विशिष्ट Oboi.type चुनें ऑब्बो ऑर्डर से प्रकार के अनुसार |
फिर हमें दोहराए बिना परिणाम प्राप्त होता है:
टाइप |
कागज़ |
डबल-लेयर पेपर |
विनाइल |
कपड़ा |
गैर बुने हुए कपड़े |
इस प्रकार, अगर डेटा तालिकाओं में सही ढंग से दर्ज हो गया है, तो तुरंत कॉल के बाद या खरीदार के अनुरोध से हम जवाब दे पाएंगे कि स्टोर में कोई तरल वॉलपेपर, ग्लास फुटपाथ और ऐक्रेलिक वॉलपेपर नहीं हैं। यह देखते हुए कि भंडार में वर्गीकरण आमतौर पर एक सौ वॉलपेपर तक सीमित नहीं है, यह गैर-अनूठे प्रकार की सूची के माध्यम से देखने के लिए काफी श्रमिक उपभोक्ता होगा।
कुल कार्यों में अलग-अलग का उपयोग करना
एसक्यूएल अलग किसी समस्त कार्य के साथ प्रयोग किया जा सकता है। लेकिन न्यूनतम और मैक्स के लिए इसके उपयोग का कोई असर नहीं होगा, और जब राशि या औसत मूल्य की गणना की जाती है, तो ऐसी स्थिति की कल्पना करना शायद ही कभी संभव है जहां दोहराव को ध्यान में रखना आवश्यक नहीं होगा।
मान लें कि हम यह जानना चाहते हैं कि हमारा गोदाम कितना भरा है, और इसके लिए हम एक अनुरोध भेजते हैं जो गोदाम में रोल की कुल संख्या की गणना करता है:
SELECT sum (Ostatki.count) ओस्टैटकी से |
प्रश्न एक प्रतिक्रिया 143 लौटाएगा। यदि हम इसमें परिवर्तन करते हैं:
चुनें योग (अलग Ostatki.count) ओस्टैटकी से |
तब हमें केवल 119 मिलता है, क्योंकि 3 और 7 के तहत वॉलपेपर स्टॉक में समान मात्रा में हैं हालांकि, यह स्पष्ट है कि यह उत्तर गलत है।
अक्सर, एसक्यूएल का उपयोग गणना कार्य के साथ होता है। इसलिए, कठिनाई के बिना, हम आम तौर पर कितने अनन्य प्रकार के वॉलपेपर देख सकते हैं:
चयन संख्या (अलग Oboi.type) ओबोई से |
और 5-पेपर साधारण और दो-परत, विनाइल, कपड़े और गैर-बुना परिणाम प्राप्त करें। निश्चित रूप से हर किसी ने एक विज्ञापन देखा था: "केवल हमारे पास 20 से अधिक विभिन्न वॉलपेपर हैं!", जिसका अर्थ यह है कि इस स्टोर में कुछ दर्जन रोल नहीं हैं, लेकिन सबसे विविध प्रकार के आधुनिक प्रकार के वॉलपेपर
दिलचस्प बात यह है कि, एक एकल अनुरोध में, आप विशिष्ट कार्यों के साथ या विशिष्ट गुण के बिना कई फ़ंक्शन को निर्दिष्ट कर सकते हैं। यही है, यह एकमात्र ऐसी स्थिति है जहां चयन में विशिष्ट कई बार मौजूद हो सकते हैं
मुझे एक तर्क के उपयोग को कब अस्वीकार कर देना चाहिए
एसक्यूएल विशिष्ट तर्क का उपयोग दो तरीकों में से एक में छोड़ा जाना चाहिए:
- आप तालिकाओं से चयन करते हैं और प्रत्येक में मूल्यों की विशिष्टता सुनिश्चित करते हैं इस मामले में, तर्क का उपयोग बेमतलब है, क्योंकि यह सर्वर या क्लाइंट पर एक अतिरिक्त भार है (डीबीएमएस के प्रकार के आधार पर)।
- आप आवश्यक डेटा खोने से डरते हैं हमें समझाएं
मान लीजिए बॉस आपको वॉलपेपर की एक सूची प्रदर्शित करने के लिए कहता है, जिसमें केवल दो कॉलम - प्रकार और रंग हैं आदत से, आप तर्क अलग निर्दिष्ट करते हैं:
अलग Oboi.Type, Oboi.color का चयन करें ओबोई से आदेश द्वारा ओबोइ टाइप |
और - आप कुछ डेटा खो देते हैं:
टाइप | रंग |
कागज़ | बहुरंगा |
डबल-लेयर पेपर | बेज |
विनाइल | भूरा |
विनाइल | नारंगी |
कपड़ा | गुलाबी |
गैर बुने हुए कपड़े | बेज |
गैर बुने हुए कपड़े | सफेद |
ऐसा प्रतीत हो सकता है कि हमारे पास केवल एक प्रकार का पेपर वॉलपेपर (पारंपरिक और दो-स्तर वाला) है, हालांकि वास्तव में हमारी छोटी सी तालिका में भी उनके पास दो लेख हैं (परिणाम बिना अलग):
टाइप | रंग |
कागज़ | बहुरंगा |
कागज़ | बहुरंगा |
डबल-लेयर पेपर | बेज |
डबल-लेयर पेपर | बेज |
विनाइल | भूरा |
विनाइल | नारंगी |
कपड़ा | गुलाबी |
गैर बुने हुए कपड़े | सफेद |
गैर बुने हुए कपड़े | बेज |
इसलिए, किसी भी प्रश्न के साथ, विशिष्ट तर्क के साथ, एक हाथ में कार्य के आधार पर समस्या को हल करके सही ढंग से अपने आवेदन के साथ समस्या को हल करना होगा।
वैकल्पिक अलग
विशिष्ट तर्क के विपरीत सभी तर्क है। जब आप इसका उपयोग करते हैं, तो डुप्लिकेट लाइनें सहेजी जाती हैं। लेकिन डिफ़ॉल्ट रूप से डीबीएमएस सोचता है कि सभी मूल्यों को मुद्रित करने के लिए आवश्यक है, सभी तर्क एक वास्तविक कार्यात्मक तर्क से अधिक विशिष्ट है।
Similar articles
Trending Now