2011-04-02 18 views

उत्तर

31

"नल को अनुमति दें" का अर्थ समझने के लिए, आपको यह समझने की आवश्यकता है कि NULL क्या है, और समझें कि यह केवल शून्य या खाली स्ट्रिंग के लिए अलग है।

NULL एसक्यूएल में एक विशेष मूल्य है। यह डेटा इंगित करता है जो मौजूद नहीं है। यह रिक्त डेटा के लिए अलग है।

जब आप MySQL में कोई तालिका बनाते हैं, तो यह आपको यह निर्दिष्ट करने की अनुमति देता है कि आपके फ़ील्ड को NULL होने की अनुमति है या नहीं। यदि आप "अनुमति दें" निर्दिष्ट करते हैं, तो उन क्षेत्रों में NULL मानों के साथ रिकॉर्ड बनाना संभव होगा।

यह कुछ मामलों में आपके लिए उपयोगी हो सकता है। उदाहरण के लिए, एक हां/नहीं फ़ील्ड एक बुलियन मान हो सकता है, लेकिन यदि उपयोगकर्ता ने अपनी वरीयता निर्दिष्ट नहीं की है, तो आप हां या नहीं करने के बजाय इसे इंगित करने के लिए NULL पर सेट करना चाहेंगे।

हालांकि कई मामलों में NULL समस्याग्रस्त हो सकता है। NULL पर सेट किए गए फ़ील्ड प्रश्नों में अप्रत्याशित परिणाम उत्पन्न कर सकते हैं, क्योंकि NULL सभी मामलों में अन्य मानों के समान नियमों का पालन नहीं करता है। उदाहरण: यदि आप ऊपर दिए गए उदाहरण फ़ील्ड WHERE myfield != 1 से पूछते हैं, तो आप उन सभी रिकॉर्ड्स के परिणाम प्राप्त करने की उम्मीद कर सकते हैं जो 1 के बराबर नहीं हैं। हालांकि NULL फ़ील्ड वापस नहीं किए जाएंगे; आपको उनके लिए एक विशेष मामला लिखना होगा।

NULLJOIN क्वेरी करते समय डिफ़ॉल्ट मान के रूप में भी उपयोग किया जाता है जहां कुछ परिणामों में शामिल होने के लिए रिकॉर्ड नहीं होता है। शामिल तालिका से अज्ञात फ़ील्ड सभी को NULL पर सेट किया जाएगा।

सामान्य रूप से, यदि आप सुनिश्चित नहीं हैं कि "अनुमति दें" के साथ क्या करना है, तो सबसे सुरक्षित विकल्प इसे बिना किसी अनुमति के सेट करना है।

अधिक जानकारी के लिए Wikipedia entry for NULL in SQL देखें।

उम्मीद है कि मदद करता है।

+0

धन्यवाद! वास्तव में अच्छी तरह से समझाया। –

+0

+1 समझने में बहुत आसान है, धन्यवाद –

4

नल को अनुमति देने का अर्थ है कि जब आप उस डेटा को भरने के लिए को पर डेटा बदलते या डालें तो यह अनिवार्य नहीं है।

+0

आपके उत्तर के लिए धन्यवाद! –

4

संक्षेप में, यदि आप एक शून्य मान की अनुमति देते हैं तो आप कह रहे हैं कि प्रश्न वाले क्षेत्र में वैध मान हो सकता है (उदाहरण: 2011-04-02 यदि यह एक तिथि थी) साथ ही साथ "न्यूल" (या " कोई मूल्य नहीं")।

इस तरह, यदि आप एक ऐसी स्थिति की कल्पना करते हैं जहां एक क्षेत्र अनिवार्य था, तो इसे हमेशा स्कीमा घोषणा में NOT NULL के रूप में दर्शाया जाना चाहिए, जबकि एक वैकल्पिक फ़ील्ड को छोड़ दिया जा सकता है।

अधिक जानकारी के लिए, MySQL मैनुअल, जो (अन्य बातों के साथ) बड़े करीने से बातें इस प्रकार का सारांश दिया की Working with NULL Values अनुभाग में देखें: सैद्धांतिक रूप

, शून्य का अर्थ है "एक लापता अज्ञात मान" और यह व्यवहार किया जाता है कुछ अन्य मानों से कुछ अलग है।

+0

महान उत्तर और लिंक के लिए धन्यवाद। मैं निश्चित रूप से इसे पढ़ूंगा। –

संबंधित मुद्दे