A column definition specifies the name, data type, and optional settings for a column in a table. It tells the database what kind of data the column will hold.
Click to reveal answer
beginner
What does the NOT NULL constraint do?
The NOT NULL constraint ensures that a column cannot have empty (NULL) values. Every row must have a value in that column.
Click to reveal answer
intermediate
Explain the PRIMARY KEY constraint.
PRIMARY KEY uniquely identifies each row in a table. It means the column(s) must have unique values and cannot be NULL.
Click to reveal answer
intermediate
What is the purpose of the UNIQUE constraint?
The UNIQUE constraint makes sure all values in a column are different from each other, but unlike PRIMARY KEY, it can allow NULL values.
Click to reveal answer
beginner
How does the DEFAULT value work in column definitions?
DEFAULT sets a value automatically for a column when no value is provided during data insertion.
Click to reveal answer
Which constraint prevents a column from having empty values?
ANOT NULL
BUNIQUE
CPRIMARY KEY
DDEFAULT
✗ Incorrect
NOT NULL ensures that a column must always have a value and cannot be left empty.
What does the PRIMARY KEY constraint guarantee?
AValues are always NULL
BValues can be duplicated
CValues are unique and not NULL
DValues have a default
✗ Incorrect
PRIMARY KEY ensures each row is uniquely identified with no NULL values.
Which constraint allows multiple NULL values but no duplicate non-NULL values?
APRIMARY KEY
BUNIQUE
CNOT NULL
DDEFAULT
✗ Incorrect
UNIQUE allows NULLs but ensures all non-NULL values are unique.
What happens if you insert a row without specifying a value for a column with a DEFAULT constraint?
AThe column gets the default value
BThe insertion fails
CThe column is set to NULL
DThe column value is random
✗ Incorrect
DEFAULT provides a preset value when no value is given during insertion.
Which data type would you use to store a person's age in a column definition?
AVARCHAR
BTEXT
CDATE
DINT
✗ Incorrect
INT is used for whole numbers like age.
Describe the main types of constraints you can apply to columns in a MySQL table and their purposes.
Think about how constraints control data validity and uniqueness.
You got /5 concepts.
Explain how you would define a column for storing email addresses that must be unique and never empty.
Combine data type and constraints to enforce rules.
You got /4 concepts.
Practice
(1/5)
1. Which constraint ensures that a column cannot have empty (NULL) values in MySQL?
easy
A. NOT NULL
B. UNIQUE
C. PRIMARY KEY
D. DEFAULT
Solution
Step 1: Understand the purpose of NOT NULL
The NOT NULL constraint prevents a column from having NULL values, meaning it must always have data.
Step 2: Compare with other constraints
UNIQUE allows NULLs but no duplicates, PRIMARY KEY implies NOT NULL and uniqueness, and DEFAULT sets a default value but does not prevent NULL.
Final Answer:
NOT NULL -> Option A
Quick Check:
Prevent empty values = NOT NULL [OK]
Hint: NOT NULL means no empty values allowed [OK]
Common Mistakes:
Confusing UNIQUE with NOT NULL
Thinking DEFAULT prevents NULL
Assuming PRIMARY KEY is only for uniqueness
2. Which of the following is the correct way to define a column named id as an auto-incrementing primary key in MySQL?
easy
A. id AUTO_INCREMENT INT PRIMARY KEY
B. id INT AUTO_INCREMENT PRIMARY
C. id INT PRIMARY KEY AUTO_INCREMENT
D. id PRIMARY KEY INT AUTO_INCREMENT
Solution
Step 1: Recall correct column definition order
In MySQL, the correct syntax places the data type first, then constraints like PRIMARY KEY and AUTO_INCREMENT.
Step 2: Validate each option's syntax
id INT PRIMARY KEY AUTO_INCREMENT follows the correct order: id INT PRIMARY KEY AUTO_INCREMENT. Others have incorrect order or missing keywords.
Final Answer:
id INT PRIMARY KEY AUTO_INCREMENT -> Option C
Quick Check:
Data type first, then constraints [OK]
Hint: Data type first, then PRIMARY KEY and AUTO_INCREMENT [OK]
Common Mistakes:
Placing AUTO_INCREMENT before data type
Using PRIMARY instead of PRIMARY KEY
Mixing order of keywords
3. Given the table definition:
CREATE TABLE users (
user_id INT PRIMARY KEY,
email VARCHAR(100) UNIQUE NOT NULL,
age INT DEFAULT 18
);
What will happen if you try to insert:
INSERT INTO users (user_id, email) VALUES (1, NULL);
medium
A. Insert fails due to NOT NULL constraint on email
B. Insert succeeds with email set to NULL
C. Insert succeeds with email set to default value
D. Insert fails due to UNIQUE constraint violation
Solution
Step 1: Check the email column constraints
Email is defined as UNIQUE NOT NULL, so it cannot be NULL.
Step 2: Analyze the insert statement
The insert tries to set email to NULL, violating the NOT NULL constraint, causing an error.
Final Answer:
Insert fails due to NOT NULL constraint on email -> Option A
Quick Check:
NOT NULL rejects NULL values [OK]
Hint: NOT NULL columns reject NULL inserts [OK]
Common Mistakes:
Assuming DEFAULT applies when value is NULL
Confusing UNIQUE with NOT NULL
Thinking NULL is allowed if UNIQUE
4. Consider this table creation statement:
CREATE TABLE products (
product_id INT PRIMARY KEY,
name VARCHAR(50) UNIQUE,
price DECIMAL(5,2) NOT NULL DEFAULT 0.00
);
Which of the following statements will cause an error?
medium
A. INSERT INTO products (product_id, name, price) VALUES (1, 'Pen', 1.50);
B. INSERT INTO products (product_id, name) VALUES (2, 'Book');
C. INSERT INTO products (product_id, price) VALUES (3, 2.00);
D. INSERT INTO products (product_id, name, price) VALUES (1, 'Pencil', 0.50);
Solution
Step 1: Check constraints on each insert
INSERT INTO products (product_id, name, price) VALUES (1, 'Pen', 1.50); inserts all required fields correctly. INSERT INTO products (product_id, name) VALUES (2, 'Book'); omits price but uses default 0.00, allowed. INSERT INTO products (product_id, price) VALUES (3, 2.00); omits name, which is nullable, allowed.
Step 2: Identify duplicate primary key error
INSERT INTO products (product_id, name, price) VALUES (1, 'Pencil', 0.50); tries to insert product_id 1 again, violating the PRIMARY KEY uniqueness constraint, causing an error.
Final Answer:
INSERT INTO products (product_id, name, price) VALUES (1, 'Pencil', 0.50); -> Option D
Quick Check:
PRIMARY KEY must be unique [OK]
Hint: Duplicate PRIMARY KEY values cause errors [OK]
Common Mistakes:
Assuming UNIQUE allows duplicates
Forgetting DEFAULT applies only if column omitted
Ignoring PRIMARY KEY uniqueness
5. You want to create a table orders where order_id is a primary key, customer_email must be unique and not null, and order_date defaults to the current date if not provided. Which of the following column definitions is correct?
hard
A. order_id INT PRIMARY KEY, customer_email VARCHAR(100) NOT NULL UNIQUE, order_date DATE DEFAULT NOW()
B. order_id INT PRIMARY KEY, customer_email VARCHAR(100) UNIQUE NOT NULL, order_date DATE DEFAULT CURRENT_DATE
C. order_id INT PRIMARY KEY, customer_email VARCHAR(100) UNIQUE, order_date DATE DEFAULT CURRENT_TIMESTAMP
D. order_id INT PRIMARY KEY, customer_email VARCHAR(100) NOT NULL UNIQUE, order_date DATE DEFAULT CURDATE()
Solution
Step 1: Check constraints on customer_email
The column must be both UNIQUE and NOT NULL. Using either UNIQUE NOT NULL or NOT NULL UNIQUE is valid in MySQL.
Step 2: Verify default for order_date
MySQL supports DEFAULT CURRENT_DATE for DATE columns. NOW() and CURRENT_TIMESTAMP return datetime, not date, causing errors. CURDATE() is a function and cannot be used directly as default.
Step 3: Confirm full correctness
order_id INT PRIMARY KEY, customer_email VARCHAR(100) UNIQUE NOT NULL, order_date DATE DEFAULT CURRENT_DATE uses correct syntax for all constraints and default value.
Final Answer:
order_id INT PRIMARY KEY, customer_email VARCHAR(100) UNIQUE NOT NULL, order_date DATE DEFAULT CURRENT_DATE -> Option B
Quick Check:
Use CURRENT_DATE for DATE default [OK]
Hint: Use CURRENT_DATE for DATE default, UNIQUE NOT NULL order matters [OK]
Common Mistakes:
Using NOW() or CURRENT_TIMESTAMP for DATE default
Trying to use functions like CURDATE() as default
Confusing UNIQUE and NOT NULL order
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.