अनुशंसित, 2019

संपादक की पसंद

एसक्यूएल में कहां और क्लॉज होने के बीच अंतर

WHERE और HAVING क्लॉज का उपयोग मुख्य रूप से SQL क्वेरीज़ के स्टेटमेंट में किया जाता है, ये हमें रिलेशनशिप में कॉम्बिनेशन को एक विशिष्ट प्रेडिकट का उपयोग करने से प्रतिबंधित करते हैं। WHERE और HAVING के बीच प्रमुख अंतर यह है कि WHERE क्लॉज संबंधों से ट्यूपल्स (पंक्तियों) का चयन करने के लिए शर्तों को निर्दिष्ट करता है, यदि आवश्यक हो तो सम्मिलित शर्तों सहित। दूसरी ओर, HAVING क्लॉज व्यक्तिगत ट्यूपल्स के बजाय उन समूहों पर एक शर्त निर्दिष्ट करता है जिन्हें चुना जा रहा है।

SQL संरचित क्वेरी भाषा के लिए खड़ा है; यह डेटाबेस से डेटा तक पहुँचने के लिए व्यापक या घोषणात्मक डेटाबेस भाषा का उपयोग किया जाता है।

तुलना चार्ट

तुलना के लिए आधारकहा पेहोने
बुनियादीपंक्ति संचालन में लागू किया गया।स्तंभ संचालन में लागू किया गया।
पर लागू किया गयाएक पंक्तिसारांशित पंक्ति या समूह।
डेटा लानायह केवल स्थिति के अनुसार विशेष पंक्तियों से विशेष डेटा प्राप्त करता है।सबसे पहले, पूरा डेटा प्राप्त किया जाता है और फिर स्थिति के अनुसार अलग किया जाता है।
अलग कार्यWHERE क्लॉज में दिखाई नहीं दे सकता।HAVING खंड में दिखाई दे सकता है।
साथ उपयोग करनाचयन और अन्य स्टेटमेंट्स जैसे कि UPDATE, DELETE या उनमें से एक।एक चयन कथन के बिना उपयोग नहीं किया जा सकता है।
के रूप में कार्यपूर्व फिल्टरपोस्ट-फिल्टर
समूह द्वाराWHERE के बाद आता है।HAVING के बाद आता है।

जहां क्लॉज की परिभाषा

SQL WHERE क्लॉज का उपयोग किसी एकल तालिका से डेटा को पुनर्प्राप्त करने या कई तालिकाओं के साथ जुड़ने के समय की स्थिति का वर्णन करने के लिए किया जाता है। यदि दी गई शर्त पूरी हो जाती है तो यह केवल तालिका से विशेष मूल्य लौटाता है। जहां क्लॉज का उपयोग रिकॉर्ड्स को क्रमबद्ध करने और केवल आवश्यक रिकॉर्ड्स को पुनः प्राप्त करने के लिए किया जाता है।

SQL तार्किक संयोजकों को भी लागू करता है और, या नहीं, जहां कहीं बूलियन स्थिति के रूप में जाना जाता है; हालत tuples को पुनः प्राप्त करने के लिए सही होना चाहिए। तार्किक संयोजक भावों के संचालकों में तुलनात्मक संचालक जैसे <, <= >, > =>, = और होते हैं । ये तुलना ऑपरेटर स्ट्रिंग्स और अंकगणितीय अभिव्यक्तियों की तुलना करते हैं। इसका उपयोग SELECT स्टेटमेंट के साथ-साथ UPDATE, DELETE स्टेटमेंट्स में भी किया जा सकता है।

एक उदाहरण लेते हैं। नीचे दी गई तालिका को ' बिक्री ' तालिका के रूप में दिखाया गया है जिसमें ' उत्पाद ' और ' बिक्री_माउंट ' विशेषताएँ शामिल हैं।

फ़ोन और स्पीकर के Total_sales की गणना करने के लिए निम्नलिखित क्वेरी लिखी जानी है।

 उत्पाद का चयन करें, योग (Sales_amount) के रूप में कुल बिक्री से उत्पाद ('फोन', 'वक्ताओं') समूह में उत्पाद; 

निम्नलिखित आउटपुट परिणामी आउटपुट है जहां पंक्तियों को पहले फ़िल्टर किया जाता है, फोन और स्पीकर की पंक्तियों को फिर से प्राप्त किया जाता है और फिर समग्र कार्य किया जाता है।

क्लॉज होने की परिभाषा

SQL HAVING क्लॉज प्रदान करता है जिसे ग्रुप BY क्लॉज के साथ संयोजन में उपयोग किया जा सकता है। यह HAVING क्लॉज कुछ शर्तों को पूरा करने वाले समूहों के लिए मूल्यों को प्राप्त करने में मदद करता है। चयन के दौरान एचएवी क्लॉज के साथ संयोजन में भी क्लॉज का उपयोग किया जा सकता है, जहां क्लॉज व्यक्तिगत पंक्ति को फिल्टर करता है। पंक्तियों को फिर समूहीकृत किया जाता है, और कुल गणना की जाती है, अंतिम HAVING खंड पर समूहों को फ़िल्टर किया जाता है।

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

यहां भी हम उसी उदाहरण को ले रहे हैं, जहां WHERE क्लॉज और उसी ' सेल्स ' टेबल पर विचार कर रहा है। जब हम HAVING क्लॉज का उपयोग करके फोन और स्पीकर के Total_sales की गणना करना चाहते हैं, तो हम निम्नलिखित क्वेरी लिखेंगे।

 उत्पाद का चयन, योग (Sales_amount) के रूप में Total_sales बिक्री समूह से उत्पाद HAVING उत्पाद ('फोन', 'स्पीकर') में; 

क्वेरी निम्न आउटपुट का उत्पादन करती है जहां पहले उत्पादों को पुनर्प्राप्त किया जाता है, फिर एग्रीगेट फ़ंक्शन (योग) किया जाता है और अंतिम समूहों पर WHERE क्लॉज के विपरीत फ़िल्टर किया जाता है।

जब हम केवल उन उत्पादों को ढूंढना चाहते हैं जहां Total_sales 1000 से अधिक है। क्वेरी को इस प्रकार लिखा जा सकता है:

 उत्पाद का चयन करें, योग (Sales_amount) के रूप में कुल बिक्री से उत्पाद समूह से बिक्री राशि (Sales_amount)> 1000; 

उत्पादित उत्पादन है:

यह HAVING के बावजूद WHERE क्लॉज का उपयोग करके नहीं किया जा सकता है और यह एक त्रुटि संदेश उत्पन्न करता है क्योंकि WHERE क्लॉज को कुल कार्यों के साथ उपयोग नहीं किया जा सकता है।

कहां और क्लॉज होने के बीच महत्वपूर्ण अंतर

  1. जहां क्लॉज को पंक्ति संचालन में नियोजित किया जाता है और एकल पंक्ति पर लागू किया जाता है जबकि स्तंभ संचालन में HAVING क्लॉज का उपयोग किया जाता है और इसे संक्षिप्त पंक्तियों या समूहों पर लागू किया जा सकता है।
  2. WHERE क्लॉज में वांछित डेटा को लागू स्थिति के अनुसार लाया जाता है। इसके विपरीत, HAVING क्लॉज पूरे डेटा को प्राप्त करता है फिर स्थिति के अनुसार पृथक्करण किया जाता है।
  3. मिनट, सम, अधिकतम, एवी जैसे एग्रीगेट कार्य WHERE क्लॉज के साथ कभी भी प्रकट नहीं हो सकते हैं। जैसा कि होता है, ये कार्य HAVING खंड में दिखाई दे सकते हैं।
  4. HAVING क्लॉज एक सेलेक्ट स्टेटमेंट के बिना उपयोग नहीं किया जा सकता। इसके विपरीत, जहाँ SELECT, UPDATE, DELETE, आदि के साथ प्रयोग किया जा सकता है।
  5. जहां क्लॉजिंग प्री-फिल्टर के रूप में व्यवहार करता है जबकि HAVING क्लॉज एक फिल्टर के बाद काम करता है।
  6. जब ग्रुप BY के साथ प्रयोग किया जाता है, तो ग्रुप BY से पहले आता है। यह दर्शाता है कि जहां कुल गणना की जाती है उससे पहले पंक्तियों को फ़िल्टर करें। दूसरी ओर, ग्रुप बाय के बाद HAVING आता है, जिसका अर्थ है कि यह कुल गणना के बाद फ़िल्टर करता है।

निष्कर्ष

WHERE और HAVING क्लॉज एक ही तरह से काम करते हैं, अतिरिक्त सुविधा को छोड़कर HAVING क्लॉज के लिए लोकप्रिय है। HAVING क्लॉज कुशलतापूर्वक कुल कार्यों के साथ काम कर सकता है जबकि WHATE को समग्र कार्यों के साथ संचालित नहीं किया जा सकता है।

Top