NOT NULL Constraint
In this page:
column_name datatype NOT NULL
NOT NULL को समझना
Default रूप से, कोई भी column special NULL value रख सकता है जिसका मतलब है 'कोई data नहीं' — NOT NULL constraint add करना इसे मना कर देता है, हर row को उस column के लिए एक real value देने पर मजबूर करते हुए।
उदाहरण: Understanding NOT NULL
CREATE TABLE users (username VARCHAR(50) NOT NULL);
मौजूदा Tables में NOT NULL Add करना
आप ALTER TABLE ... MODIFY से पहले से मौजूद एक column पर NOT NULL retrofit कर सकते हैं, हालाँकि अगर मौजूदा किसी row में इस समय उस column में NULL है तो operation fail हो जाएगा।
यह practice में एक constraint retrofit करना एक two-step process बनाता है: पहले किसी भी मौजूदा NULLs को साफ करें, फिर MODIFY statement apply करें।
उदाहरण: Adding NOT NULL to Existing Tables
ALTER TABLE users MODIFY username VARCHAR(50) NOT NULL;
Error Scenarios Handle करना
एक NOT NULL column के लिए एक value दिए बिना एक row INSERT करने की कोशिश (और कोई DEFAULT define न होने पर) तुरंत एक error raise करती है, bad data को storage तक पहुँचने से पहले रोकते हुए। यह fail-fast behavior constraint का exactly मकसद है, insert time पर एक data integrity problem पकड़ते हुए बजाय कहीं बाद में।
उदाहरण: Handling Error Scenarios
CREATE TABLE users (username VARCHAR(50) NOT NULL);
INSERT INTO users (username) VALUES (NULL); -- raises an error
NOT NULL हटाना
एक NOT NULL constraint हटाने का मतलब है column definition को दोबारा बिना keyword के modify करना — उसके बाद, future inserts column को खाली छोड़ने के लिए free हैं। यह एक reversible change है, इसलिए अगर एक business requirement बदलती है, column हमेशा फिर से एक value माँगने पर वापस जा सकता है।
उदाहरण: Removing NOT NULL
ALTER TABLE users MODIFY username VARCHAR(50);
Best Practices
NOT NULL को किसी भी ऐसे column पर best practice माना जाता है जहाँ एक missing value meaningless या dangerous होगी — usernames, passwords, और primary keys classic examples हैं। genuinely optional fields पर NOT NULL को बहुत liberally apply करना बस awkward placeholder values force करता है बजाय एक clean, honest empty value के।
उदाहरण: Best Practices
CREATE TABLE users (
id INT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL
);
- बिना default वाले एक
NOT NULLcolumn के लिए बिना value के एक row insert करना, जो एक error के साथ fail होता है। - column में पहले से
NULLvalues होने के दौरानALTER TABLE ... MODIFYसेNOT NULLadd करना, जो fail हो जाता है। - यह सोचना कि एक empty string
''NULLके same है, जबकिNOT NULLअभी भी empty strings की अनुमति देता है।
Chapter Quiz — Complete all 8 topics to unlock
0/8 topics done
Complete these topics first: