SQL में नल (Null) की अवधारणा, रिलेशनल मॉडल में अनुपस्थित जानकारी को नियंत्रित करने के लिए डाली गई थी। ट्रू और फॉल्स के साथ नल (या अज्ञात) की स्थापना थ्री-वैल्यूड लॉजिक की नींव है। नल का कोई मान नहीं होता (और न ही यह किसी डेटा अनुक्षेत्र (डोमेन) का सदस्य है), अपितु यह अनुपस्थित जानकारी के लिए प्रयोग किया जाने वाला एक स्थानधारक या चिन्ह है। इसलिए नल (Null) के साथ की गयी तुलनाओं का परिणाम कभी भी ट्रू या फॉल्स नहीं हो सकता बल्कि यह सदा तीसरा लॉजिकल परिणाम- 'अननोन'(अज्ञात) होता है।

SQL, नल को अनुपस्थित जानकारी को नियंत्रित करने के लिए प्रयोग करता है। यह थ्री-वैल्यूड लॉजिक (3VL) को सपोर्ट करता है। वो नियम जो SQL थ्री-वैल्यूड लॉजिक को नियमित करते हैं, नीचे दिए गए हैं (p और q लॉजिकल अवस्थाओं को दर्शाते हैं). शब्द NULL SQL में एक आरक्षित कीवर्ड (रिज़र्व्ड कीवर्ड) भी है जो विशेष नल मार्कर (स्पेशल नल मार्कर) की पहचान करने में प्रयोग होता है।

इसके अतिरिक्त, चूंकि जब भी किसी चीज़ की तुलना नल से होती है तो SQL ऑपरेटर्स 'अननोन' रिटर्न करते हैं, इसलिए SQL विशेषतया नल संबंधी दो कम्पैरिजन प्रेडीकेट की सुविधा प्रदान करता है: codice_24 और codice_25 जांच करते हैं कि डेटा नल है या नहीं। 

ध्यान दें कि SQL केवल उन परिणामों के लिए मान रिटर्न करता है जिनके लिए WHERE क्लॉज़ एक ट्रू मान रिटर्न करता है। यानी, यह फॉल्स मान वाले परिणाम अपवर्जित कर देता है, लेकिन यह उनको भी अपवर्जित कर देता है जिनके मान मालूम नहीं (अज्ञात) हैं।

SQL, यूनिवर्सल क्वांटिफिकेशन (परिमाणन) को स्पष्टतया सपोर्ट नहीं करता और इसे 'निगेटेड एग्जिसटेनशिअल क्वानटिफिकेशन (परिमाणन)' के रूप में निकाला जाना ज़रूरी है।

'इन फिक्सड कम्पेरिज़न ऑपरेटर' "<row value expression> IS DISTINCT FROM <row value expression>" भी है जो दोनों ऑपरैंड के बराबर होने पर या NULL होने पर TRUE रिटर्न करता है। इसी प्रकार IS NOT DISTINCT FROM को "NOT (<row value expression> IS DISTINCT FROM <row value expression>") के रूप में परिभाषित किया जाता है।

SQL के विकल्प
क्रॉस-वेंडर पोर्टेबिलिटी
इतिहास
नल और थ्री-वैल्यूड लॉजिक (3VL)