TOP

एसक्यूएल-पाठ 6. परिकलित (गणना) फ़ील्ड

आपको गणना फ़ील्ड का उपयोग क्यों करना चाहिए? एक नियम के रूप में, डेटाबेस में जानकारी अलग-अलग टुकड़ों के रूप में प्रस्तुत की जाती है, क्योंकि डेटा की संरचना करना और उस पर काम करना आसान होता है। हालाँकि, हमें अक्सर डेटा के अलग-अलग टुकड़ों का नहीं, बल्कि पहले से ही संयुक्त और संसाधित जानकारी का उपयोग करने की आवश्यकता होगी। उदाहरण के लिए, ग्राहकों के पहले और अंतिम नामों को संयोजित करना, तालिका के विभिन्न स्तंभों में मौजूद पता तत्वों को संयोजित करना, पाठ और व्यक्तिगत शब्दों, अक्षरों और प्रतीकों को संसाधित करना, खरीदारी की कुल लागत का योग करना अक्सर आवश्यक होता है। , डेटाबेस में मौजूद जानकारी पर आँकड़े प्रदर्शित करने के लिए। डेटा को आमतौर पर अलग-अलग "खंडों" में संग्रहित किया जाता है, जिसके लिए क्लाइंट प्रोग्राम की ओर से अतिरिक्त प्रोसेसिंग की आवश्यकता होती है। हालाँकि, DBMS का उपयोग करके पहले से संसाधित जानकारी प्राप्त करना संभव है। इस मामले में गणना क्षेत्र मदद करते हैं। क्वेरी निष्पादित होने पर वे स्वचालित रूप से बनाए जाते हैं और उनमें सामान्य कॉलम की उपस्थिति और गुण होते हैं जो तालिका में पहले से मौजूद होते हैं। अंतर केवल इतना है कि कोई भौतिक रूप से गणना किए गए फ़ील्ड नहीं हैं, इसलिए वे डीबी में अतिरिक्त स्थान नहीं लेते हैं, लेकिन अस्थायी रूप से डीबीएमएस की "रैंडम मेमोरी" में मौजूद होते हैं। डीबीएमएस पक्ष पर संचालन करने का लाभ डेटा प्रोसेसिंग की गति है।


1. गणितीय संक्रियाएँ करना

परिकलित फ़ील्ड का उपयोग करने का एक तरीका चयनित डेटा पर गणितीय संचालन करना है। आइए फिर से हमारी समप्रोडक्ट तालिका का उपयोग करके एक उदाहरण लें कि यह कैसे होता है। मान लीजिए आपको प्रत्येक उत्पाद के औसत खरीद मूल्य की गणना करने की आवश्यकता है। ऐसा करने के लिए, आपको राशि कॉलम को Quantity (मात्रा) में पुनः वितरित करना होगा:

Run SQLSELECT DISTINCT Product, Amount/Quantity 
FROM Sumproduct

जैसा कि आप देख सकते हैं, DBMS ने सभी उत्पाद नामों का चयन किया और उनकी औसत लागत को एक अलग कॉलम में प्रदर्शित किया जो क्वेरी के निष्पादन के दौरान बनाया गया था। आप यह भी देख सकते हैं कि हमने एक अतिरिक्त ऑपरेटर DISTINCT का उपयोग किया है, जिसकी हमें अद्वितीय उत्पाद नाम प्रदर्शित करने के लिए आवश्यकता होती है (इसके बिना हमारे पास डुप्लिकेट रिकॉर्ड होंगे)।

2. छद्मशब्दों का प्रयोग

पिछले उदाहरण में, हमने प्रत्येक उत्पाद के औसत खरीद मूल्य की गणना की और गणना कॉलम में मूल्य प्रदर्शित किया। हालाँकि, भविष्य में, इस फ़ील्ड को संदर्भित करना हमारे लिए असुविधाजनक होगा, क्योंकि इसका नाम हमारे लिए सूचनात्मक नहीं है (DBMS ने फ़ील्ड का नाम दिया - एक्सपीआर1001)। हालाँकि, हम फ़ील्ड का नाम पहले से ही क्वेरी में निर्दिष्ट करके, यानी उपनाम देकर स्वतंत्र रूप से नाम दे सकते हैं। आइए पिछले उदाहरण को फिर से लिखें और गणना क्षेत्र के लिए एक उपनाम निर्दिष्ट करें:

Run SQLSELECT DISTINCT Product, Amount/Quantity AS AvgPrice 
FROM Sumproduct

हम देखते हैं कि हमारे गणना क्षेत्र को अपना नाम AvgPrice प्राप्त हुआ है। इसके लिए, हमने ऑपरेटर AS का उपयोग किया, जिसके बाद हमने वह नाम निर्दिष्ट किया जिसकी हमें आवश्यकता थी। यह ध्यान दिया जाना चाहिए कि SQL में केवल बुनियादी गणितीय संचालन समर्थित हैं: जोड़ (+), घटाव (-), गुणा (*), विभाजन (/)। आप संचालन के क्रम को बदलने के लिए गोल कोष्ठक का भी उपयोग कर सकते हैं।

उपनामों का उपयोग अक्सर न केवल गणना फ़ील्ड को नाम देने के लिए किया जाता है, बल्कि सक्रिय फ़ील्ड का नाम बदलने के लिए भी किया जाता है। यदि सक्रिय फ़ील्ड का नाम लंबा है या नाम पर्याप्त जानकारीपूर्ण नहीं है तो यह आवश्यक हो सकता है।

3. फ़ील्ड्स का कनेक्शन (संयोजन)

गणितीय संक्रियाओं के अलावा, हम पाठ को संयोजित भी कर सकते हैं और उसे एक अलग फ़ील्ड में प्रदर्शित कर सकते हैं। आइए विचार करें कि आप टेक्स्ट को कैसे गोंद (संक्षिप्त) कर सकते हैं। MS Access में विभिन्न कॉलमों से टेक्स्ट को कनेक्ट करने के लिए, प्लस ऑपरेटर (+) का उपयोग किया जाता है, उदाहरण के लिए:

Run SQLSELECT Month + ' ' + Product AS NewField, Quantity  
FROM Sumproduct

इस उदाहरण में, हमने मानों को दो कॉलमों में संयोजित किया और परिणाम को एक नए फ़ील्ड न्यूफ़ील्ड में आउटपुट किया।

एकाधिक कॉलम से टेक्स्ट को जोड़ने (संक्षिप्त करने) के लिए MySQL बोली में प्लस ऑपरेटर (+) समर्थित नहीं है। इस स्थिति में, CONCAT() फ़ंक्शन का उपयोग करें।