What does the NOT NULL constraint do in a MySQL table?
The NOT NULL constraint ensures that a column cannot have a NULL value. It means every row must have a value for that column.
Click to reveal answer
beginner
What is the purpose of the DEFAULT constraint in MySQL?
The DEFAULT constraint sets a default value for a column when no value is provided during data insertion.
Click to reveal answer
intermediate
Can a column have both NOT NULL and DEFAULT constraints? What happens if you insert a row without specifying that column's value?
Yes, a column can have both. If you insert a row without specifying the column's value, MySQL uses the DEFAULT value instead of NULL.
Click to reveal answer
beginner
Write a simple MySQL column definition using NOT NULL and DEFAULT constraints for a column named status with default value 'active'.
status VARCHAR(20) NOT NULL DEFAULT 'active'
Click to reveal answer
intermediate
What happens if you try to insert a NULL value into a NOT NULL column without a DEFAULT value?
MySQL will return an error and reject the insert because the column cannot accept NULL and no default value is provided.
Click to reveal answer
What does the NOT NULL constraint prevent?
AInserting NULL values into a column
BInserting duplicate values
CInserting default values
DDeleting rows
✗ Incorrect
NOT NULL means the column must always have a value; NULLs are not allowed.
If a column has a DEFAULT value and you insert a row without specifying that column, what happens?
AThe insert fails
BThe column is left empty
CThe column is set to NULL
DThe column gets the default value
✗ Incorrect
The DEFAULT value is used automatically when no value is provided.
Which statement is true about a column defined as INT NOT NULL DEFAULT 0?
AIt can store NULL values
BIt must always have a value, defaulting to 0 if none is given
CIt cannot have a default value
DIt automatically increments
✗ Incorrect
The column cannot be NULL and uses 0 as default if no value is inserted.
What error occurs if you insert NULL into a NOT NULL column without a default?
ASyntax error
BDuplicate entry error
CConstraint violation error
DNo error
✗ Incorrect
MySQL rejects NULL values for NOT NULL columns causing a constraint violation.
Which constraint helps ensure a column always has a meaningful value?
ANOT NULL
BUNIQUE
CDEFAULT
DCHECK
✗ Incorrect
NOT NULL forces a value to be present, preventing empty or NULL entries.
Explain in your own words what the NOT NULL and DEFAULT constraints do in a database table.
Think about what happens when you insert data without specifying a column's value.
You got /3 concepts.
Describe a real-life example where using NOT NULL and DEFAULT constraints would be helpful.
Imagine a signup form where some fields must never be empty.
You got /3 concepts.
Practice
(1/5)
1. What does the NOT NULL constraint do in a MySQL table column?
easy
A. It automatically fills the column with a default value.
B. It deletes rows where the column is empty.
C. It allows the column to accept any type of data.
D. It ensures the column cannot have empty or missing values.
Solution
Step 1: Understand NOT NULL constraint
The NOT NULL constraint means a column must always have a value; it cannot be left empty or null.
Step 2: Compare with other options
Only It ensures the column cannot have empty or missing values. correctly describes this behavior. It automatically fills the column with a default value. describes DEFAULT, C is unrelated, and D is incorrect.
Final Answer:
It ensures the column cannot have empty or missing values. -> Option D
Quick Check:
NOT NULL means no empty values allowed [OK]
Hint: NOT NULL means value required, no blanks allowed [OK]
Common Mistakes:
Confusing NOT NULL with DEFAULT
Thinking NOT NULL deletes rows
Assuming NOT NULL allows empty strings
2. Which of the following is the correct syntax to add a NOT NULL and DEFAULT constraint to a column named age of type INT in MySQL?
easy
A. ALTER TABLE users MODIFY age INT DEFAULT 18 NULL;
B. ALTER TABLE users MODIFY age INT NOT NULL DEFAULT 18;
C. ALTER TABLE users CHANGE age INT DEFAULT 18 NOT NULL;
D. ALTER TABLE users ADD age INT DEFAULT NOT NULL 18;
Solution
Step 1: Review correct ALTER TABLE syntax
To modify a column with NOT NULL and DEFAULT, the syntax is: MODIFY column_name data_type NOT NULL DEFAULT value.
Step 2: Check each option
ALTER TABLE users MODIFY age INT NOT NULL DEFAULT 18; matches this syntax exactly. Options B and C have wrong order or keywords. ALTER TABLE users MODIFY age INT DEFAULT 18 NULL; allows NULL, which is incorrect.
Final Answer:
ALTER TABLE users MODIFY age INT NOT NULL DEFAULT 18; -> Option B
Quick Check:
Correct syntax uses MODIFY with NOT NULL then DEFAULT [OK]
Hint: Use MODIFY column TYPE NOT NULL DEFAULT value [OK]
Common Mistakes:
Placing DEFAULT before NOT NULL
Using ADD instead of MODIFY for existing columns
Allowing NULL when NOT NULL is required
3. Given the table employees with column status VARCHAR(10) NOT NULL DEFAULT 'active', what will be the value of status after this insert?
INSERT INTO employees (name) VALUES ('John');
medium
A. Empty string ''
B. NULL
C. 'active'
D. Error due to missing status
Solution
Step 1: Understand DEFAULT and NOT NULL behavior
The column status cannot be NULL and has a default value 'active'. If no value is given, MySQL uses the default.
Step 2: Analyze the INSERT statement
The insert only provides name, so status uses its default 'active'. No error occurs.
Final Answer:
'active' -> Option C
Quick Check:
Missing value uses DEFAULT when NOT NULL [OK]
Hint: Missing NOT NULL column uses DEFAULT value automatically [OK]
Common Mistakes:
Expecting NULL instead of default
Thinking insert will fail without explicit value
Assuming empty string is default
4. You have this table creation statement:
CREATE TABLE products (id INT NOT NULL, price DECIMAL(5,2) DEFAULT 0.00);
What is the problem with this table definition?
medium
A. The id column is NOT NULL but has no DEFAULT, causing insert errors.
B. The id column allows NULL values.
C. The price column cannot have a default value.
D. There is no PRIMARY KEY defined, so the table is invalid.
Solution
Step 1: Check NOT NULL columns without DEFAULT
The id column is NOT NULL but has no default value. If an insert omits id, it will cause an error.
Step 2: Analyze other options
The price column cannot have a default value. is wrong because price can have a default. The id column allows NULL values. is wrong because id is NOT NULL. There is no PRIMARY KEY defined, so the table is invalid. is not mandatory for table creation.
Final Answer:
The id column is NOT NULL but has no DEFAULT, causing insert errors. -> Option A
Quick Check:
NOT NULL without DEFAULT requires explicit value on insert [OK]
Hint: NOT NULL columns need value or DEFAULT to avoid insert errors [OK]
Common Mistakes:
Assuming NOT NULL columns get default NULL
Thinking PRIMARY KEY is required for table creation
Believing DEFAULT is mandatory for NOT NULL
5. You want to create a table orders where the status column must never be empty and should default to 'pending'. Which of these statements correctly creates this table?
hard
A. CREATE TABLE orders (id INT NOT NULL, status VARCHAR(20) NOT NULL DEFAULT 'pending');
B. CREATE TABLE orders (id INT NOT NULL, status VARCHAR(20) DEFAULT 'pending');
C. CREATE TABLE orders (id INT NOT NULL, status VARCHAR(20) NOT NULL);
D. CREATE TABLE orders (id INT NOT NULL, status VARCHAR(20) DEFAULT NOT NULL 'pending');
Solution
Step 1: Identify constraints needed
Status must never be empty (NOT NULL) and default to 'pending' if no value is given.
Step 2: Check each CREATE TABLE option
CREATE TABLE orders (id INT NOT NULL, status VARCHAR(20) NOT NULL DEFAULT 'pending'); correctly uses NOT NULL and DEFAULT together. CREATE TABLE orders (id INT NOT NULL, status VARCHAR(20) DEFAULT 'pending'); misses NOT NULL, allowing NULLs. CREATE TABLE orders (id INT NOT NULL, status VARCHAR(20) NOT NULL); misses DEFAULT, so no automatic value. CREATE TABLE orders (id INT NOT NULL, status VARCHAR(20) DEFAULT NOT NULL 'pending'); has wrong syntax.
Final Answer:
CREATE TABLE orders (id INT NOT NULL, status VARCHAR(20) NOT NULL DEFAULT 'pending'); -> Option A
Quick Check:
NOT NULL with DEFAULT sets required and default value [OK]
Hint: Use NOT NULL before DEFAULT for required columns [OK]
Common Mistakes:
Omitting NOT NULL allows NULL values
Placing DEFAULT before NOT NULL
Using invalid syntax with DEFAULT NOT NULL
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.