MySQL Constraints Overview
In this page:
CREATE TABLE table_name (
column_name datatype constraint,
column_name datatype constraint
);
Constraints क्या हैं?
Constraints किसी table के columns से attached rules हैं जो restrict करते हैं कि वहाँ कौन सा data कभी store हो सकता है, invalid data को उसके insert या update होने के moment पर पकड़ते हुए बजाय bad data को database में slip करने देने के।
उदाहरण: What are Constraints?
CREATE TABLE users (
id INT PRIMARY KEY,
email VARCHAR(100) NOT NULL UNIQUE
);
NOT NULL और UNIQUE
NOT NULL माँग करता है कि हर row में उस column में एक value हो, किसी भी ऐसे insert या update को reject करते हुए जो इसे खाली छोड़ दे, जबकि UNIQUE ensure करता है कि table की कोई दो rows कभी उस column में same value share न करें।
उदाहरण: NOT NULL and UNIQUE
CREATE TABLE users (
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE
);
PRIMARY KEY और FOREIGN KEY
PRIMARY KEY किसी column को हर row के unique identifier की तरह mark करता है, automatically NOT NULL और UNIQUE combine करते हुए, जबकि FOREIGN KEY किसी column को किसी दूसरी table की एक primary key से link करता है, यह ensure करते हुए कि referenced rows actually exist करती हैं।
उदाहरण: PRIMARY KEY and FOREIGN KEY
CREATE TABLE authors (id INT PRIMARY KEY);
CREATE TABLE books (
id INT PRIMARY KEY,
author_id INT,
FOREIGN KEY (author_id) REFERENCES authors(id)
);
CHECK और DEFAULT
CHECK एक custom condition enforce करता है जिसे किसी column की हर value satisfy करनी चाहिए, जैसे एक price जो कभी negative नहीं हो सकती, जबकि DEFAULT जब भी एक insert explicitly कुछ न दे तो एक automatic fallback value supply करता है।
उदाहरण: CHECK and DEFAULT
CREATE TABLE products (
price DECIMAL(10,2) CHECK (price >= 0),
status VARCHAR(20) DEFAULT 'active'
);
एक मौजूदा Table में Constraints Add करना
Constraints सिर्फ किसी table के पहली बार बनते समय ही define नहीं करने पड़ते -- ALTER TABLE UNIQUE, CHECK, या FOREIGN KEY जैसा एक नया constraint एक ऐसी table में add कर सकता है जो पहले से exist करती है और पहले से data रखती है।
उदाहरण: Adding Constraints to an Existing Table
ALTER TABLE products ADD CONSTRAINT chk_price CHECK (price >= 0);
- एक constraint add करना और उसके मौजूदा bad data check करने की उम्मीद करना, जबकि अगर current rows पहले से rule तोड़ती हैं तो
ALTER TABLEfail हो सकता है। - 8.0.16 से पहले पुराने MySQL versions पर
CHECKपर भरोसा करना, जहाँ इसे parse किया जाता है लेकिन ignore कर दिया जाता है। PRIMARY KEYकोUNIQUEसे confuse करना, जबकि एक table में सिर्फ एक primary key होती है और यहNULLनहीं हो सकती।
Chapter Quiz — Complete all 8 topics to unlock
0/8 topics done
Complete these topics first: