0
0
MySQLquery~10 mins

ENUM and SET types in MySQL - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - ENUM and SET types
Define ENUM or SET column with allowed values
Insert or Update row with value(s)
Check if value(s) match allowed list
Store value(s)
Retrieve stored value(s)
ENUM and SET columns store predefined values. Data must match allowed values or insertion fails.
Execution Sample
MySQL
CREATE TABLE shirts (
  size ENUM('small', 'medium', 'large'),
  colors SET('red', 'green', 'blue')
);

INSERT INTO shirts VALUES ('medium', 'red,blue');
Create a table with ENUM and SET columns, then insert a row with valid values.
Execution Table
StepActionInput ValueCheck Against Allowed ValuesResultStored Value
1Create tablesize ENUM('small','medium','large'), colors SET('red','green','blue')N/ATable createdN/A
2Insert rowsize='medium', colors='red,blue'Check 'medium' in ENUM listValidsize='medium'
3Insert rowcolors='red,blue'Check 'red' and 'blue' in SET listValidcolors='red,blue'
4Retrieve rowN/AN/ASuccesssize='medium', colors='red,blue'
💡 Insertion stops after validating all values are allowed.
Variable Tracker
VariableStartAfter Step 2After Step 3Final
sizeNULL'medium''medium''medium'
colorsNULL'red,blue''red,blue''red,blue'
Key Moments - 2 Insights
Why can't I insert a value not listed in ENUM or SET?
Because ENUM and SET only accept predefined values. See execution_table rows 2 and 3 where values are checked and must be valid.
How does SET store multiple values?
SET stores multiple allowed values separated by commas, as shown in execution_table row 3 where 'red,blue' is valid.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the stored value of 'size' after step 2?
A'small'
B'medium'
CNULL
D'large'
💡 Hint
Check the 'Stored Value' column in row 2 of execution_table.
At which step does the system check if 'red' and 'blue' are allowed SET values?
AStep 3
BStep 2
CStep 1
DStep 4
💡 Hint
Look at the 'Check Against Allowed Values' column for 'red' and 'blue' in execution_table.
If you try to insert 'extra-large' into size ENUM, what happens?
AIt stores 'extra-large' anyway
BIt stores NULL silently
CIt causes an error and insertion fails
DIt converts to 'large'
💡 Hint
Refer to key_moments about invalid values and execution_table exit_note.
Concept Snapshot
ENUM and SET types store predefined values.
ENUM allows one value from a list.
SET allows multiple values from a list.
Invalid values cause insertion errors.
Use ENUM for single choice, SET for multiple choices.
Full Transcript
ENUM and SET are special column types in MySQL that let you store only specific allowed values. ENUM stores one value from a list, like sizes small, medium, or large. SET stores zero or more values from a list, like colors red, green, and blue. When you insert data, MySQL checks if the values match the allowed list. If they do, it stores them; if not, it gives an error. For example, inserting 'medium' into an ENUM size column works because 'medium' is allowed. Inserting 'red,blue' into a SET colors column works because both 'red' and 'blue' are allowed. Trying to insert a value not in the list, like 'extra-large' in size, causes an error and stops the insertion. This helps keep data clean and consistent.