MySQL IS NULL और IS NOT NULL ट्यूटोरियल उदाहरणों के साथ
SQL में Null एक मान और एक कीवर्ड दोनों है। आइए सबसे पहले NULL मान पर नज़र डालें –
मान के रूप में शून्य
सरल शब्दों में, NULL केवल उस डेटा के लिए एक प्लेसहोल्डर है जो मौजूद नहीं है। टेबल पर इन्सर्ट ऑपरेशन करते समय, ऐसे समय होंगे जब कुछ फ़ील्ड मान उपलब्ध नहीं होंगे।
वास्तविक रिलेशनल डेटाबेस प्रबंधन प्रणालियों की आवश्यकताओं को पूरा करने के लिए, MySQL जो मान सबमिट नहीं किए गए हैं उनके लिए प्लेसहोल्डर के रूप में NULL का उपयोग करता है। नीचे दिया गया स्क्रीनशॉट दिखाता है कि डेटाबेस में NULL मान कैसे दिखते हैं।
आइए चर्चा में आगे बढ़ने से पहले NULL के कुछ मूल तत्वों पर नजर डालें।
- NULL एक डेटा प्रकार नहीं है - इसका मतलब है कि इसे "int", "date" या किसी अन्य परिभाषित डेटा प्रकार के रूप में मान्यता नहीं दी गई है।
- अंकगणितीय आपरेशनस शामिल नल हमेशा शून्य लौटाएं उदाहरण के लिए, 69 + NULL = NULL.
- सब समग्र कार्य केवल उन पंक्तियों को प्रभावित करें जिनमें NULL मान नहीं हैं.
आइए अब देखें कि काउंट फ़ंक्शन शून्य मानों को कैसे संभालता है। आइए सदस्य तालिका की वर्तमान सामग्री देखें-
SELECT * FROM `members`;
उपरोक्त स्क्रिप्ट को निष्पादित करने से हमें निम्नलिखित परिणाम प्राप्त होते हैं
| membership_ number | full_ names | gender | date_of_ birth | physical_ address | postal_ address | contact_ number | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
| 5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
| 6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
| 7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
| 8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
| 9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me |
आइए उन सभी सदस्यों की गिनती करें जिन्होंने अपना संपर्क_नंबर अपडेट किया है
SELECT COUNT(contact_number) FROM `members`;
उपरोक्त क्वेरी को निष्पादित करने से हमें निम्नलिखित परिणाम प्राप्त होते हैं।
| COUNT(contact_number) |
|---|
| 7 |
नोट: जो मान NULL हैं उन्हें शामिल नहीं किया गया है
क्या नहीं है?
NOT लॉजिकल ऑपरेटर का उपयोग बूलियन स्थितियों के परीक्षण के लिए किया जाता है और यदि स्थिति गलत है तो यह सत्य लौटाता है। NOT ऑपरेटर गलत लौटाता है यदि परीक्षण की गई स्थिति सत्य है
| रोग की स्थिति | नहीं Operator परिणाम |
|---|---|
| यह सच है | झूठा |
| झूठा | यह सच है |
NOT null का प्रयोग क्यों करें?
ऐसे मामले होंगे जब हमें क्वेरी परिणाम सेट पर गणना करनी होगी और मान लौटाने होंगे। NULL मान वाले कॉलम पर कोई भी अंकगणितीय ऑपरेशन करने से शून्य परिणाम मिलते हैं। ऐसी स्थितियों से बचने के लिए, हम NOT NULL क्लॉज़ का उपयोग करके उन परिणामों को सीमित कर सकते हैं जिन पर हमारा डेटा काम करता है।
NOT NULL मान
मान लीजिए कि हम कुछ फ़ील्ड के साथ एक टेबल बनाना चाहते हैं, जिसमें टेबल में नई पंक्तियाँ डालते समय हमेशा मान दिए जाने चाहिए। टेबल बनाते समय हम किसी दिए गए फ़ील्ड पर NOT NULL क्लॉज़ का उपयोग कर सकते हैं।
नीचे दिखाया गया उदाहरण एक नई तालिका बनाता है जिसमें कर्मचारी का डेटा होता है। कर्मचारी संख्या हमेशा दी जानी चाहिए
CREATE TABLE `employees`( employee_number int NOT NULL, full_names varchar(255) , gender varchar(6) );
आइए अब कर्मचारी का नाम निर्दिष्ट किए बिना एक नया रिकॉर्ड डालने का प्रयास करें और देखें कि क्या होता है।
INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');
उपरोक्त स्क्रिप्ट को निष्पादित करना MySQL कार्यक्षेत्र निम्नलिखित त्रुटि देता है-
शून्य कीवर्ड
NULL को कीवर्ड के रूप में भी इस्तेमाल किया जा सकता है जब NULL वाले मानों पर बूलियन ऑपरेशन किए जाते हैं। ऐसे उद्देश्यों के लिए “IS/NOT” कीवर्ड का इस्तेमाल NULL शब्द के साथ किया जाता है। जब null को कीवर्ड के रूप में इस्तेमाल किया जाता है तो मूल सिंटैक्स इस प्रकार है
`comlumn_name' IS NULL `comlumn_name' NOT NULL
यहाँ
- “शून्य है वह कीवर्ड है जो बूलियन तुलना करता है। यदि दिया गया मान NULL है तो यह true लौटाता है और यदि दिया गया मान NULL नहीं है तो यह false लौटाता है।
- "अशक्त नहीं"वह कीवर्ड है जो बूलियन तुलना करता है। यदि दिया गया मान NULL नहीं है तो यह true लौटाता है और यदि दिया गया मान null है तो false लौटाता है।
आइए अब एक व्यावहारिक उदाहरण देखें जिसमें NOT NULL कीवर्ड का उपयोग करके उन सभी स्तंभ मानों को हटा दिया जाता है जिनमें शून्य मान होते हैं।
उपरोक्त उदाहरण को जारी रखते हुए, मान लीजिए हमें उन सदस्यों के विवरण की आवश्यकता है जिनका संपर्क नंबर शून्य नहीं है। हम इस तरह एक क्वेरी निष्पादित कर सकते हैं
SELECT * FROM `members` WHERE contact_number IS NOT NULL;
उपरोक्त क्वेरी निष्पादित करने पर केवल वही रिकॉर्ड प्राप्त होते हैं जहां संपर्क संख्या शून्य नहीं है।
मान लीजिए कि हम ऐसे सदस्य रिकॉर्ड चाहते हैं जहाँ संपर्क संख्या शून्य है। हम निम्नलिखित क्वेरी का उपयोग कर सकते हैं
SELECT * FROM `members` WHERE contact_number IS NULL;
उपरोक्त क्वेरी निष्पादित करने से उन सदस्यों का विवरण प्राप्त होता है जिनका संपर्क नंबर NULL है
| membership_ number | full_names | gender | date_of_birth | physical_address | postal_address | contact_ number | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
| 3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
| 5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
| 6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
| 7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
| 8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
| 9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me |
शून्य मानों की तुलना करना
तीन-मूल्य तर्क - NULL को शामिल करने वाली स्थितियों पर बूलियन ऑपरेशन करना या तो वापस कर सकता है “अज्ञात”, “सत्य” या “असत्य”।
उदाहरण के लिए, “IS NULL” कीवर्ड का उपयोग करके तुलनात्मक कार्य करते समय NULL शामिल या तो वापस आ सकते हैं <strong>उद्देश्य</strong> or असत्यअन्य तुलना ऑपरेटरों का उपयोग करने पर रिटर्न मिलता है “अज्ञात”(शून्य).
मान लीजिए आप संख्या पांच की तुलना 5 से करते हैं
SELECT 5 =5;
क्वेरी परिणाम 1 है जिसका अर्थ है सत्य
| 5 =5 |
|---|
| 1 |
आइये यही कार्य NULL के साथ करें
SELECT NULL = NULL;
| NULL = NULL |
|---|
| NULL |
आइये एक और उदाहरण देखें
SELECT 5 > 5;
| 5 > 5 |
|---|
| 0 |
क्वेरी परिणाम 0 है जिसका अर्थ है FALSE
आइये NULL का उपयोग करके उसी उदाहरण को देखें
SELECT NULL > NULL;
| NULL > NULL |
|---|
| NULL |
आइए IS NULL कीवर्ड का उपयोग करें
SELECT 5 IS NULL;
| 5 IS NULL |
|---|
| 0 |
क्वेरी परिणाम 0 है जो कि गलत है
SELECT NULL IS NULL;
| NULL IS NULL |
|---|
| 1 |
क्वेरी परिणाम 1 है जो सत्य है
सारांश
- NULL वैकल्पिक तालिका फ़ील्ड के लिए मान स्थान धारक है।
- MySQL NULL मान को अन्य डेटा प्रकारों से अलग तरीके से व्यवहार करता है। जब किसी शर्त में NULL मान का उपयोग किया जाता है तो उसका मूल्यांकन गलत बूलियन मान के रूप में होता है।
- NOT तार्किक संचालन का उपयोग बूलियन मानों के परीक्षण के लिए किया जाता है और यदि बूलियन मान गलत है तो यह सत्य का मूल्यांकन करता है और यदि बूलियन मान सत्य है तो यह गलत का मूल्यांकन करता है।
- NOT NULL क्लॉज़ का उपयोग परिणाम सेट से NULL मानों को हटाने के लिए किया जाता है
- NULL मानों पर अंकगणितीय संक्रिया करने पर सदैव NULL परिणाम प्राप्त होता है।
- तुलना ऑपरेटर जैसे [, =, आदि] का उपयोग NULL मानों की तुलना करने के लिए नहीं किया जा सकता है।


