डेटाबेस समस्याओं से बचने के लिए एनयूएलएल के उपयोग को समझें
डेटाबेस की दुनिया के लिए नए उपयोगकर्ता अक्सर विशेष रूप से फ़ील्ड के लिए विशेष मूल्य से भ्रमित होते हैं - कुल मूल्य। यह मान किसी भी प्रकार के डेटा वाले फ़ील्ड में पाया जा सकता है और एक संबंधपरक डेटाबेस के संदर्भ में इसका एक बहुत ही खास अर्थ है। नल के बारे में कुछ शब्दों के साथ न्यूल की हमारी चर्चा शुरू करना शायद सबसे अच्छा है:
- शून्य शून्य संख्या नहीं है।
- नल खाली स्ट्रिंग ("") मान नहीं है।
इसके बजाय, एनयूएलएल मूल्य का अज्ञात टुकड़ा प्रस्तुत करने के लिए उपयोग किया जाता है। अक्सर, डेटाबेस प्रोग्रामर वाक्यांश "एक नल मान" का उपयोग करेंगे, लेकिन यह गलत है। याद रखें: एक नल एक अज्ञात मान है जिसमें फ़ील्ड खाली दिखाई देता है।
असली दुनिया में नल
आइए एक साधारण उदाहरण पर नज़र डालें: एक टेबल जिसमें फलों के स्टैंड के लिए सूची होती है। मान लीजिए कि हमारी सूची में 10 सेब और तीन संतरे हैं। हम भी प्लम स्टॉक करते हैं, लेकिन हमारी सूची जानकारी अपूर्ण है और हम नहीं जानते कि कितने (यदि कोई हैं) प्लम स्टॉक में हैं। NULL मान का उपयोग करके, हमारे पास नीचे दी गई तालिका में दिखाए गए सूची तालिका होगी।
फल स्टैंड सूची
InventoryID | मद | मात्रा |
1 | सेब | 10 |
2 | संतरे | 3 |
3 | बेर | शून्य |
प्लम्स रिकॉर्ड के लिए 0 की मात्रा को शामिल करना स्पष्ट रूप से गलत होगा, क्योंकि इसका मतलब यह होगा कि हमारे पास सूची में कोई प्लम नहीं था। इसके विपरीत, हमारे पास कुछ प्लम हो सकते हैं, लेकिन हम निश्चित नहीं हैं।
नल या नहीं करने के लिए?
एक तालिका को या तो पूर्ण मानों की अनुमति देने के लिए डिज़ाइन किया जा सकता है या नहीं।
यहां एक SQL उदाहरण है जो एक सूची तालिका बनाता है जो कुछ NULLs को अनुमति देता है:
एसक्यूएल> टेबल इन्वेंट्री बनाएं (इन्वेंटरीआईड नॉट, आइटम वर्चर (20) न्यूल, क्वांटिटी आईएनटी);इन्वेंटरी टेबल इनवेंटरीआईडी और आइटम कॉलम के लिए नल मानों की अनुमति नहीं देता है, लेकिन उन्हें मात्रा कॉलम के लिए अनुमति देता है।
एक पूर्ण मूल्य को अनुमति देने के दौरान पूरी तरह से ठीक है, नल मूल्यों में समस्याएं पैदा हो सकती हैं क्योंकि मूल्यों की तुलना में कोई भी नल हमेशा नल में होता है।
यह जांचने के लिए कि क्या आपकी तालिका में नल मान हैं, आईएस न्यूल का उपयोग करें या नल ऑपरेटर नहीं है। आईएस नल का एक उदाहरण यहां दिया गया है:
एसक्यूएल> इन्वेंट्री, आइटम, सूची से मात्रा चुनें जहां मात्रा पूर्ण नहीं है;यहां हमारे उदाहरण को देखते हुए, यह वापस आ जाएगा:
InventoryID | मद | मात्रा |
---|---|---|
3 | बेर |
एनयूएलएस पर परिचालन
एसक्यूएल ऑपरेशन के आधार पर, नल मूल्यों के साथ काम करना अक्सर नल परिणाम उत्पन्न करता है। उदाहरण के लिए, यह मानते हुए कि ए पूर्ण है:
अंकगणितीय आपरेटर
- ए + बी = न्यूल
- ए - बी = न्यूल
- ए * बी = न्यूल
- ए / बी = न्यूल
तुलना ऑपरेटर
- ए = बी = न्यूल
- ए! = बी = न्यूल
- ए> बी = न्यूल
- ए! <बी = न्यूल
ये ऑपरेटर के कुछ उदाहरण हैं जो एक ऑपरेंड न्यूल होने पर हमेशा शून्य वापस आ जाएंगे। अधिक जटिल प्रश्न मौजूद हैं, और सभी नल मूल्यों से जटिल हैं। ले ले होम प्वाइंट यह है कि, यदि आप अपने डेटाबेस में नल मानों की अनुमति देते हैं, तो उनके लिए प्रभाव और योजना को समझें।
संक्षेप में यह शून्य है!