Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does the NOT NULL constraint do in a database?
It ensures that a column cannot have NULL values, meaning every row must have a value for that column.
Click to reveal answer
beginner
How do you add a NOT NULL constraint to a column when creating a table?
Use column_name datatype NOT NULL in the CREATE TABLE statement.
Click to reveal answer
intermediate
Can a column with a NOT NULL constraint accept empty strings ('')?
Yes, NOT NULL only prevents NULL values, but empty strings are considered valid values.
Click to reveal answer
beginner
What happens if you try to insert a row without a value for a NOT NULL column?
The database will reject the insert and return an error because the column requires a value.
Click to reveal answer
intermediate
How can you add a NOT NULL constraint to an existing column?
Use an ALTER TABLE statement like ALTER TABLE table_name ALTER COLUMN column_name SET NOT NULL; (syntax may vary by SQL dialect).
Click to reveal answer
What does the NOT NULL constraint prevent?
ADeleting rows
BInserting duplicate values
CInserting NULL values into a column
DUpdating values
✗ Incorrect
The NOT NULL constraint stops NULL values from being inserted into the column.
Which SQL keyword is used to define a column that cannot be NULL?
AUNIQUE
BCHECK
CPRIMARY KEY
DNOT NULL
✗ Incorrect
The NOT NULL keyword specifies that the column must have a value.
If a column is defined as NOT NULL, what happens if you try to insert a row without a value for that column?
AThe insert fails with an error
BThe database inserts a default value automatically
CThe row is inserted with an empty string
DThe row is inserted with NULL
✗ Incorrect
The database rejects the insert because the column requires a non-NULL value.
Can a NOT NULL column contain an empty string ('')?
AOnly if the column is numeric
BYes, empty strings are allowed
CNo, empty strings are treated as NULL
DOnly if the column is a primary key
✗ Incorrect
Empty strings are valid values and different from NULL, so they are allowed.
How do you add a NOT NULL constraint to an existing column in most SQL databases?
AALTER TABLE table_name ALTER COLUMN column_name SET NOT NULL;
BALTER TABLE table_name MODIFY column_name NOT NULL;
CALTER TABLE table_name ADD NOT NULL column_name;
DALTER TABLE table_name CHANGE column_name NOT NULL;
✗ Incorrect
The standard way is to use ALTER COLUMN column_name SET NOT NULL, but syntax can vary by database.
Explain what the NOT NULL constraint does and why it is useful in a database.
Think about what happens if a column must always have a value.
You got /3 concepts.
Describe how you would add a NOT NULL constraint to a column in an existing table.
Consider how to change a column's rules after the table is created.
You got /3 concepts.
Practice
(1/5)
1.
What does the NOT NULL constraint do in a database table?
easy
A. It automatically generates unique values for a column.
B. It allows a column to have duplicate values.
C. It ensures a column cannot have empty or missing values.
D. It deletes rows with null values.
Solution
Step 1: Understand the purpose of NOT NULL
The NOT NULL constraint prevents a column from having NULL (empty) values, ensuring data is always present.
Step 2: Compare options with the definition
Only It ensures a column cannot have empty or missing values. correctly describes this behavior; others describe different constraints or actions.
Final Answer:
It ensures a column cannot have empty or missing values. -> Option C
Quick Check:
NOT NULL means no empty values allowed [OK]
Hint: NOT NULL means no empty values allowed in a column [OK]
Common Mistakes:
Confusing NOT NULL with UNIQUE constraint
Thinking NOT NULL deletes rows
Assuming NOT NULL auto-generates values
2.
Which of the following is the correct syntax to add a NOT NULL constraint to a column named email when creating a table?
CREATE TABLE users ( id INT PRIMARY KEY, email ??? );
easy
A. NULL VARCHAR(255)
B. NOT NULL VARCHAR(255)
C. VARCHAR(255) NULL
D. VARCHAR(255) NOT NULL
Solution
Step 1: Recall correct order of column definition
The data type comes first, then constraints like NOT NULL.
Step 2: Check each option's order
VARCHAR(255) NOT NULL correctly places VARCHAR(255) before NOT NULL; others have wrong order or use NULL instead.
Final Answer:
VARCHAR(255) NOT NULL -> Option D
Quick Check:
Data type first, then NOT NULL [OK]
Hint: Data type comes before NOT NULL in column definition [OK]
Common Mistakes:
Writing NOT NULL before data type
Using NULL instead of NOT NULL
Omitting data type
3.
Given the table employees with columns id INT PRIMARY KEY and name VARCHAR(100) NOT NULL, what happens when you run this query?
INSERT INTO employees (id, name) VALUES (1, NULL);
medium
A. The query fails with an error due to NOT NULL constraint.
B. The name column defaults to an empty string.
C. The row is inserted with a NULL name.
D. The row is inserted but name is ignored.
Solution
Step 1: Understand NOT NULL behavior on insert
NOT NULL means the column cannot accept NULL values during insert or update.
Step 2: Analyze the insert statement
The query tries to insert NULL into the name column, violating the NOT NULL constraint, causing an error.
Final Answer:
The query fails with an error due to NOT NULL constraint. -> Option A
Quick Check:
NOT NULL rejects NULL inserts [OK]
Hint: Inserting NULL into NOT NULL column causes error [OK]
Common Mistakes:
Assuming NULL is converted to empty string
Thinking the row inserts ignoring NULL
Confusing NOT NULL with default values
4.
Consider this table creation statement:
CREATE TABLE products ( product_id INT PRIMARY KEY, product_name VARCHAR(50) NOT NULL, price DECIMAL(5,2) );
Which of the following statements will cause an error?
medium
A. INSERT INTO products (product_id, product_name, price) VALUES (1, 'Pen', 1.50);
B. INSERT INTO products (product_id, price) VALUES (2, 2.00);
C. INSERT INTO products (product_id, product_name) VALUES (3, 'Notebook');
D. INSERT INTO products (product_id, product_name, price) VALUES (4, 'Eraser', NULL);
Solution
Step 1: Identify columns with NOT NULL constraint
Only product_name has NOT NULL, so it must have a value on insert.
Step 2: Check each insert statement
INSERT INTO products (product_id, price) VALUES (2, 2.00); omits product_name, so it tries to insert NULL, causing an error. Others provide product_name.
Final Answer:
INSERT missing NOT NULL column product_name causes error. -> Option B
Quick Check:
NOT NULL columns must be included in insert [OK]
Hint: Always provide values for NOT NULL columns on insert [OK]
Common Mistakes:
Ignoring NOT NULL columns in insert
Assuming NULL allowed if column omitted
Confusing NULL and empty string
5.
You have a table orders with columns order_id INT PRIMARY KEY, customer_id INT NOT NULL, and order_date DATE NOT NULL. You want to add a new column status that must always have a value and defaults to 'pending'. Which is the correct way to add this column?
hard
A. ALTER TABLE orders ADD COLUMN status VARCHAR(20) NOT NULL DEFAULT 'pending';
B. ALTER TABLE orders ADD COLUMN status VARCHAR(20) DEFAULT 'pending';
C. ALTER TABLE orders ADD COLUMN status VARCHAR(20) NOT NULL;
D. ALTER TABLE orders ADD COLUMN status VARCHAR(20);
Solution
Step 1: Understand NOT NULL with default value
Adding a NOT NULL column requires a default value to avoid errors on existing rows.
Step 2: Analyze each ALTER statement
ALTER TABLE orders ADD COLUMN status VARCHAR(20) NOT NULL DEFAULT 'pending'; adds status with NOT NULL and default 'pending', so existing rows get this value. Others miss NOT NULL or default.
Final Answer:
ALTER with NOT NULL and DEFAULT 'pending' is correct. -> Option A
Quick Check:
NOT NULL columns need default when added to existing table [OK]
Hint: Add NOT NULL column with DEFAULT to avoid errors [OK]