← Back to MySQL Course | Chapter 4: Constraints | Lesson 2 of 8

NOT NULL Constraint

NOT NULL required mark किए गए एक form field जैसा है। अगर आप वह जगह खाली छोड़ दें तो database row accept नहीं करेगा।
Syntax
sql
column_name datatype NOT NULL

NOT NULL को समझना

Default रूप से, कोई भी column special NULL value रख सकता है जिसका मतलब है 'कोई data नहीं' — NOT NULL constraint add करना इसे मना कर देता है, हर row को उस column के लिए एक real value देने पर मजबूर करते हुए।

उदाहरण: Understanding NOT NULL

sql
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

sql
ALTER TABLE users MODIFY username VARCHAR(50) NOT NULL;

⚠️ This is MySQL-specific syntax. It cannot run in the browser editor. Practice this on your local MySQL installation.

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

sql
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

sql
ALTER TABLE users MODIFY username VARCHAR(50);

⚠️ This is MySQL-specific syntax. It cannot run in the browser editor. Practice this on your local MySQL installation.

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

sql
CREATE TABLE users (
  id INT PRIMARY KEY,
  username VARCHAR(50) NOT NULL,
  password VARCHAR(255) NOT NULL
);
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. बिना default वाले एक NOT NULL column के लिए बिना value के एक row insert करना, जो एक error के साथ fail होता है।
  2. column में पहले से NULL values होने के दौरान ALTER TABLE ... MODIFY से NOT NULL add करना, जो fail हो जाता है।
  3. यह सोचना कि एक empty string '' NULL के same है, जबकि NOT NULL अभी भी empty strings की अनुमति देता है।
🔒

Chapter Quiz — Complete all 8 topics to unlock

0/8 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.