NOT NULL, UNIQUE, CHECK और DEFAULT
Constraints क्या हैं
Constraints वो नियम हैं जो आप columns पर लगाते हैं ताकि data अपने-आप मान्य रहे। हर बार अपने program में values जाँचने के बजाय, database खुद इन्हें लागू करता है। सबसे आम हैं NOT NULL, UNIQUE, DEFAULT और CHECK।
NOT NULL
CREATE TABLE students (
roll INT PRIMARY KEY,
name VARCHAR(50) NOT NULL
);
NOT NULL मतलब column में हमेशा एक value होनी चाहिए। name बिना student insert करने की कोशिश fail होती है। इसे ज़रूरी fields को इस्तेमाल कीजिए जो कभी खाली न हों।
UNIQUE
CREATE TABLE users (
id INT PRIMARY KEY,
email VARCHAR(100) UNIQUE
);
UNIQUE column में duplicate values रोकता है। दो users एक ही email साझा नहीं कर सकते। Primary key के विपरीत, UNIQUE एक null allow कर सकती है और table में कई UNIQUE columns हो सकते हैं।
DEFAULT
CREATE TABLE orders (
id INT PRIMARY KEY,
status VARCHAR(10) DEFAULT 'pending'
);
INSERT INTO orders (id) VALUES (1); -- status 'pending' बनता है
DEFAULT fallback value देता है जो आप न दें तब इस्तेमाल होती है। यहाँ बिना status वाला नया order अपने-आप 'pending' बन जाता है, आपको हर बार set करने से बचाकर।
CHECK
CREATE TABLE students (
roll INT PRIMARY KEY,
marks INT CHECK (marks >= 0 AND marks <= 100)
);
CHECK value पर एक condition लागू करता है। यहाँ marks 0 और 100 के बीच होने चाहिए; MySQL इसे तोड़ने वाली किसी भी row को ठुकराता है। यह गारंटी देता है values समझदार रहें।
सब साथ में
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
age INT CHECK (age >= 18),
active BOOLEAN DEFAULT TRUE
);
आप एक table पर constraints जोड़ सकते हैं। यहाँ हर employee का नाम, unique email, कम-से-कम 18 age होनी चाहिए, और default रूप से active है। Database ये सारे नियम आपके लिए लागू करता है।
आम गलतियाँ
- ज़रूरी fields पर NOT NULL छूटना। तब खाली values घुस जाती हैं।
- UNIQUE और PRIMARY KEY मिलाना। UNIQUE एक null allow करती है; primary key नहीं।
- यह भूलना DEFAULT सिर्फ़ column छोड़ने पर लागू होता है। स्पष्ट NULL देना इसे override करता है।
- बहुत पुराने MySQL पर CHECK मानना। CHECK MySQL 8.0.16 से लागू होता है।
सारांश
- Constraints अपने-आप data मान्य रखने वाले नियम हैं।
- NOT NULL value ज़रूरी करता है; UNIQUE duplicates रोकता है।
- DEFAULT कोई न देने पर fallback value देता है।
- CHECK एक condition लागू करता है, जैसे मान्य range।
- आप एक table पर कई constraints जोड़ सकते हैं।
आगे, key constraints सीखिए primary key vs foreign key में, या columns बदलिए ALTER TABLE से।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
MySQL में constraints क्या हैं?
NOT NULL क्या करता है?
UNIQUE और PRIMARY KEY में क्या अंतर है?
DEFAULT constraint क्या करता है?
status VARCHAR(10) DEFAULT 'active' नई rows को active बनाता है जब तक आप और न कहें।CHECK constraint क्या है?
CHECK (age >= 18)। MySQL condition तोड़ने वाली किसी भी row को ठुकराता है, तो आप गारंटी दे सकते हैं, जैसे marks कभी negative न हों।