खोज…
परिचय
SQL में NULL
, साथ ही साथ सामान्य रूप से प्रोग्रामिंग का अर्थ है, शाब्दिक रूप से "कुछ भी नहीं"। एसक्यूएल में, "किसी भी मूल्य की अनुपस्थिति" के रूप में समझना आसान है।
यह महत्वपूर्ण रूप से खाली मानों से अलग करना महत्वपूर्ण है, जैसे कि रिक्त स्ट्रिंग ''
या संख्या 0
, जिनमें से कोई भी वास्तव में NULL
।
'NULL'
तरह, NULL
को उद्धरणों में शामिल न करने के लिए सावधान रहना भी महत्वपूर्ण है, जो उन कॉलमों में अनुमति दी जाती है जो टेक्स्ट को स्वीकार करते हैं, लेकिन NULL
नहीं NULL
और त्रुटियों और गलत डेटा सेट का कारण बन सकता है।
प्रश्नों में NULL के लिए फ़िल्टरिंग
WHERE
ब्लॉक में NULL
(अर्थात मान का अभाव) के लिए फ़िल्टर करने का सिंटैक्स विशिष्ट मानों के लिए फ़िल्टरिंग से थोड़ा अलग है।
SELECT * FROM Employees WHERE ManagerId IS NULL ;
SELECT * FROM Employees WHERE ManagerId IS NOT NULL ;
ध्यान दें कि क्योंकि NULL
कुछ भी बराबर नहीं है, यहां तक कि अपने आप को, समानता ऑपरेटर्स का उपयोग कर = NULL
या <> NULL
(या != NULL
) हमेशा की सच्चाई मूल्य निकलेगा UNKNOWN
है जिसके द्वारा अस्वीकार कर दिया जाएगा WHERE
।
WHERE
सभी पंक्तियों को फ़िल्टर करता है जो स्थिति FALSE
या UKNOWN
और केवल उन पंक्तियों को रखता है जो स्थिति TRUE
।
तालिकाओं में अशक्त स्तंभ
तालिकाओं का निर्माण करते समय एक स्तंभ को अशक्त या गैर-अशक्त घोषित करना संभव है।
CREATE TABLE MyTable
(
MyCol1 INT NOT NULL, -- non-nullable
MyCol2 INT NULL -- nullable
) ;
डिफ़ॉल्ट रूप से प्रत्येक स्तंभ (प्राथमिक कुंजी बाधा में उन लोगों को छोड़कर) NOT NULL
जब तक कि हम स्पष्ट रूप से NOT NULL
बाधा NOT NULL
निर्धारित करें।
NULL
को एक NULL
स्तंभ में निर्दिष्ट करने का प्रयास करने के परिणामस्वरूप त्रुटि होगी।
INSERT INTO MyTable (MyCol1, MyCol2) VALUES (1, NULL) ; -- works fine
INSERT INTO MyTable (MyCol1, MyCol2) VALUES (NULL, 2) ;
-- cannot insert
-- the value NULL into column 'MyCol1', table 'MyTable';
-- column does not allow nulls. INSERT fails.
फ़ील्ड को NULL में अपडेट कर रहा है
NULL
लिए फ़ील्ड सेट करना किसी भी अन्य मान के समान कार्य करता है:
UPDATE Employees
SET ManagerId = NULL
WHERE Id = 4
NULL फ़ील्ड के साथ पंक्तियाँ सम्मिलित करना
उदाहरण के लिए किसी कर्मचारी को बिना फ़ोन नंबर और किसी प्रबंधक के साथ कर्मचारी उदाहरण तालिका में सम्मिलित करना:
INSERT INTO Employees
(Id, FName, LName, PhoneNumber, ManagerId, DepartmentId, Salary, HireDate)
VALUES
(5, 'Jane', 'Doe', NULL, NULL, 2, 800, '2016-07-22') ;