ENUM Data Type
In this page:
column_name ENUM('value1', 'value2', 'value3')
ENUM क्या है?
ENUM किसी column को table-creation time पर define की गई एक fixed list में से चुनी गई एक value तक restrict करता है, जैसे small, medium, large — यह options के एक छोटे, stable set के लिए एक पूरी lookup table का एक lightweight alternative है।
उदाहरण: What is ENUM?
CREATE TABLE shirts (size ENUM('small', 'medium', 'large'));
INSERT INTO shirts VALUES ('medium');
ENUM Fields Query करना
भले ही आप ENUM values को ordinary strings की तरह insert और query करते हैं, MySQL actually उन्हें internally compact integer indexes की तरह store करता है, जो column को छोटा और compare करने में तेज़ रखता है।
उदाहरण: Querying ENUM Fields
CREATE TABLE shirts (size ENUM('small', 'medium', 'large'));
INSERT INTO shirts VALUES ('medium');
SELECT * FROM shirts WHERE size = 'medium';
ENUM Numeric Indexing
हर defined ENUM value को 1 से शुरू होने वाला एक implicit index मिलता है (0 invalid/empty entries के लिए reserved है), और आप technically string के बजाय उस numeric index से insert या filter कर सकते हैं।
उदाहरण: ENUM Numeric Indexing
CREATE TABLE shirts (size ENUM('small', 'medium', 'large'));
INSERT INTO shirts VALUES ('medium');
SELECT * FROM shirts WHERE size + 0 = 2;
Invalid ENUM Values Handle करना
strict SQL mode में, ENUM की defined list में मौजूद न होने वाली एक value insert करना एक error raise करता है और row reject कर देता है; strict mode के बाहर, MySQL इसके बजाय चुपचाप एक empty string store कर सकता है।
उदाहरण: Handling Invalid ENUM Values
CREATE TABLE shirts (size ENUM('small', 'medium', 'large'));
INSERT INTO shirts VALUES ('extra-large'); -- rejected in strict SQL mode
ENUM Options Modify करना
किसी ENUM में एक नई allowed value add करने के लिए एक ALTER TABLE चाहिए जो पूरे column को redefine करे, जो बहुत बड़ी tables पर एक धीमा, table-rewriting operation हो सकता है — ENUM की compactness के against एक real tradeoff।
उदाहरण: Modifying ENUM Options
ALTER TABLE shirts MODIFY size ENUM('small', 'medium', 'large', 'x-large');
- list में न होने वाली एक value insert करना, जैसे
xl, जो strict mode में store होने के बजाय error देता है। - एक
ENUMcolumn sort करना और alphabetical order की उम्मीद करना, जबकि यह list में position से sort होता है। - मौजूदा values की पूरी list दोहराए बिना बाद में
ALTER TABLEसे एक नया option add करना।
Chapter Quiz — Complete all 8 topics to unlock
0/8 topics done
Complete these topics first: