IS NULL और IS NOT NULL
NULL का सही अर्थ
NULL missing, unknown या not-applicable information दर्शाता है। यह zero, FALSE, blank string या “NULL” word नहीं है। Result घोषित न होने पर marks NULL हो सकते हैं; zero score एक known value है।
students में Aarav (X-A, 86.50, Active), Meera (X-A, 91.00, Active), Kabir (X-B, 74.00, Inactive) और Sana (X-B, 88.50, Active) हैं।IS NULL और IS NOT NULL
SELECT student_id, full_name
FROM students
WHERE marks IS NULL;
SELECT student_id, full_name, marks
FROM students
WHERE marks IS NOT NULL
ORDER BY student_id;पहली query missing और दूसरी recorded marks खोजती है। marks = NULL या marks <> NULL न लिखें।
NULL और Three-Valued Logic
| Expression | Result |
|---|---|
NULL = NULL | UNKNOWN |
NULL <> 80 | UNKNOWN |
NULL IS NULL | TRUE |
NULL IS NOT NULL | FALSE |
NULL <=> NULL | MySQL में TRUE |
UNKNOWN WHERE pass नहीं करता। इसी कारण NULL वाली list में NOT IN surprise दे सकता है।
COUNT, Arithmetic और Fallback
SELECT COUNT(*) AS total_rows,
COUNT(marks) AS recorded_marks,
AVG(marks) AS average_recorded_marks
FROM students;Most aggregates NULL ignore करते हैं; COUNT(*) rows count करता है। NULL वाला arithmetic सामान्यतः NULL देता है। Display fallback:
SELECT full_name,
COALESCE(CAST(marks AS CHAR), 'Not recorded') AS marks_display
FROM students;Design और Safe Updates
Unknown valid हो तो NULL, mandatory हो तो NOT NULL और valid choices के लिए CHECK/foreign key लें। Missing data भरने से पहले preview करें:
START TRANSACTION;
SELECT student_id, full_name FROM students
WHERE marks IS NULL FOR UPDATE;
UPDATE students SET marks = 0
WHERE marks IS NULL;
-- Verify करें कि zero का वही अर्थ है।
ROLLBACK;गलतियाँ और अभ्यास
- = NULL लिखना।
- हर column में empty text को unknown मानना।
- Aggregates के NULL behavior को भूलना।
- Business meaning से पहले COALESCE लगाना।
- NULL marks वाली practice row जोड़कर COUNT(*) और COUNT(marks) compare करें।
- केवल recorded marks खोजें।
- Stored NULL बदले बिना “Pending” दिखाएँ।
- Zero और NULL का AVG पर अंतर समझाएँ।
त्वरित सारांश
- NULL का अर्थ known value नहीं है।
- IS NULL या IS NOT NULL से test करें।
- WHERE UNKNOWN reject और most aggregates NULL ignore करते हैं।
- Fallback display बदलता है, underlying meaning नहीं।
Official संदर्भ
References 14 August 2026 को review किए गए।
