innoDB में, NULL खाली स्ट्रिंग की तुलना में कम जगह घेरता है। साथ ही, NULL लंबाई शून्य है जबकि खाली स्ट्रिंग की लंबाई 0 है।
इसे समझने के लिए create कमांड की मदद से एक टेबल बनाई जाती है जो इस प्रकार है -
mysql> टेबल बनाएं DemoEmptyAndNULL-> (-> Message varchar(100)-> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.49 सेकंड)
टेबल को सफलतापूर्वक बनाने के बाद, इन्सर्ट कमांड की मदद से टेबल में एक खाली रिकॉर्ड डाला जाता है जो इस प्रकार है -
mysql> DemoEmptyAndNULL मानों ('') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.17 सेकंड)
रिकॉर्ड डालने के बाद, हम सभी रिकॉर्ड्स को सेलेक्ट कमांड की मदद से प्रदर्शित कर सकते हैं जो इस प्रकार है -
mysql> DemoEmptyAndNULL से * चुनें;
उपरोक्त क्वेरी को निष्पादित करने के बाद, निम्न आउटपुट प्राप्त होता है -
<पूर्व>+------------+| संदेश |+------------+| |+-----------+1 पंक्ति सेट में (0.00 सेकंड)बिल्ट इन फंक्शन काउंट की मदद से एक खाली स्ट्रिंग की लंबाई की जांच करने के लिए सिंटैक्स इस प्रकार है -
अपने TableName से गिनती (कॉलम_नाम) चुनें;
उपरोक्त सिंटैक्स का उपयोग एक खाली स्ट्रिंग की लंबाई प्राप्त करने के लिए किया जाता है जो इस प्रकार है -
mysql> DemoEmptyAndNULL से गिनती (संदेश) चुनें;
उपरोक्त क्वेरी को निष्पादित करने के बाद, निम्न आउटपुट है -
<पूर्व>+----------------+| गिनती (संदेश) |+----------------+| 1 |+----------------+1 पंक्ति सेट में (0.06 सेकंड)उपरोक्त आउटपुट से यह स्पष्ट है कि खाली स्ट्रिंग की लंबाई 1 है।
अब हम NULL की लंबाई की जांच करेंगे। सबसे पहले, तालिका में डाला गया रिकॉर्ड निम्नानुसार डिलीट कमांड का उपयोग करके हटा दिया जाता है -
mysql> DemoEmptyAndNULL से हटाएं जहां message=' ';क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.19 सेकंड)
निम्न क्वेरी का उपयोग यह जांचने के लिए किया जाता है कि अभी तालिका में कोई रिकॉर्ड नहीं है
mysql> DemoEmptyAndNULL से * चुनें; खाली सेट (0.00 सेकंड)
अब, शून्य मान वाला रिकॉर्ड निम्नानुसार तालिका में डाला जाता है -
mysql> DemoEmptyAndNULL मानों में डालें (); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.18 सेकंड)
रिकॉर्ड को सेलेक्ट कमांड का उपयोग करके प्रदर्शित किया जाता है और प्राप्त आउटपुट इस प्रकार है -
<पूर्व>+------------+| संदेश |+------------+| NULL |+-----------+1 पंक्ति सेट में (0.00 सेकंड)अब, तालिका में शून्य मान वाला केवल एक रिकॉर्ड है। इसकी लंबाई ज्ञात करने के लिए निम्नलिखित क्वेरी का उपयोग किया जाता है -
mysql> DemoEmptyAndNULL से गिनती (संदेश) चुनें;
उपरोक्त क्वेरी का आउटपुट निम्नलिखित है -
<पूर्व>+----------------+| गिनती (संदेश) |+----------------+| 0 |+----------------+1 पंक्ति सेट में (0.00 सेकंड)उपरोक्त आउटपुट का अर्थ है कि शून्य मान के लिए गिनती 0 है।
आइए हम MySQL संस्करण की जाँच करें।
<पूर्व>mysql> संस्करण का चयन करें ();+---------------+| वर्जन () |+-----------+| 8.0.12 |+-----------+1 पंक्ति में सेट (0.06 सेकंड)इसलिए डेटाबेस के लिए खाली स्ट्रिंग का उपयोग करना बेहतर है क्योंकि NULL मान सिस्टम को अतिरिक्त काम करने के लिए मजबूर करता है और वह डेटा नहीं देता है जिसे आप ढूंढ रहे हैं। हालाँकि, जब गिनती () फ़ंक्शन निष्पादित होता है, तो NULL कोई अपवाद नहीं फेंकता है।