Bird
Raised Fist0
SQLquery~30 mins

INSERT with DEFAULT values in SQL - Mini Project: Build & Apply

Choose your learning style10 modes available
Insert Rows Using DEFAULT Values in SQL
📖 Scenario: You are managing a simple employee database for a small company. The table employees has columns for id, name, department, and salary. Some columns have default values set by the database.
🎯 Goal: Learn how to insert new rows into the employees table using the DEFAULT keyword to use default values for some columns.
📋 What You'll Learn
Create the employees table with columns id, name, department, and salary.
Set default values for department as 'General' and salary as 30000.
Insert a new employee providing only id and name, using DEFAULT for department and salary.
Insert another employee providing id, name, and department, but use DEFAULT for salary.
💡 Why This Matters
🌍 Real World
Many databases use default values to simplify data entry and ensure consistent data when some information is not provided.
💼 Career
Knowing how to use DEFAULT values and insert data efficiently is important for database administrators and developers managing real-world data.
Progress0 / 4 steps
1
Create the employees table with default values
Write a SQL statement to create a table called employees with these columns and types: id as INTEGER, name as VARCHAR(50), department as VARCHAR(50) with default value 'General', and salary as INTEGER with default value 30000.
SQL
Hint

Use DEFAULT 'General' for the department column and DEFAULT 30000 for the salary column.

2
Insert an employee using DEFAULT for department and salary
Write an INSERT statement to add a new employee with id 1 and name 'Alice'. Use the DEFAULT keyword for department and salary to use their default values.
SQL
Hint

Use DEFAULT for both department and salary in the VALUES clause.

3
Insert an employee with a specific department but default salary
Write an INSERT statement to add a new employee with id 2, name 'Bob', and department 'Sales'. Use DEFAULT for the salary column.
SQL
Hint

Provide 'Sales' for department and use DEFAULT for salary.

4
Insert an employee using DEFAULT for all columns except id and name
Write an INSERT statement to add a new employee with id 3 and name 'Charlie'. Use DEFAULT for both department and salary columns again to complete the table entries.
SQL
Hint

Use DEFAULT for both department and salary again.

Practice

(1/5)
1. What does the SQL statement INSERT INTO table_name DEFAULT VALUES; do?
easy
A. Inserts a new row using all default values for columns
B. Deletes all rows from the table
C. Updates existing rows with default values
D. Selects all rows with default values

Solution

  1. Step 1: Understand the INSERT statement

    The statement inserts a new row into the table.
  2. Step 2: Recognize DEFAULT VALUES usage

    Using DEFAULT VALUES means the new row uses default values defined for each column.
  3. Final Answer:

    Inserts a new row using all default values for columns -> Option A
  4. Quick Check:

    INSERT ... DEFAULT VALUES inserts default row [OK]
Hint: DEFAULT VALUES inserts a row with all default column values [OK]
Common Mistakes:
  • Thinking it deletes or updates rows
  • Confusing DEFAULT VALUES with SELECT
  • Assuming it inserts NULLs instead of defaults
2. Which of the following is the correct syntax to insert a row with default values in SQL?
easy
A. INSERT INTO table_name VALUES (DEFAULT);
B. INSERT INTO table_name VALUES DEFAULT;
C. INSERT DEFAULT INTO table_name VALUES;
D. INSERT INTO table_name DEFAULT VALUES;

Solution

  1. Step 1: Recall correct syntax for default insertion

    The correct syntax is INSERT INTO table_name DEFAULT VALUES; to insert a row with all default values.
  2. Step 2: Check each option

    INSERT INTO table_name DEFAULT VALUES; matches the correct syntax exactly; others are invalid or incorrect.
  3. Final Answer:

    INSERT INTO table_name DEFAULT VALUES; -> Option D
  4. Quick Check:

    Correct syntax = INSERT INTO ... DEFAULT VALUES [OK]
Hint: Remember: DEFAULT VALUES comes after table name in INSERT [OK]
Common Mistakes:
  • Placing DEFAULT inside VALUES parentheses
  • Swapping DEFAULT and VALUES keywords
  • Using incorrect keyword order
3. Given the table users(id INT DEFAULT 0, name VARCHAR(20) DEFAULT 'guest'), what will be the result of INSERT INTO users DEFAULT VALUES; SELECT * FROM users; after running on an empty table?
medium
A. Empty result set
B. [{"id": 0, "name": "guest"}]
C. Syntax error
D. [{"id": NULL, "name": NULL}]

Solution

  1. Step 1: Understand table defaults

    The table has default values: id = 0, name = 'guest'.
  2. Step 2: Effect of INSERT DEFAULT VALUES

    Inserting default values adds a row with id=0 and name='guest'.
  3. Step 3: SELECT result

    After insertion, selecting all rows returns one row with those default values.
  4. Final Answer:

    [{"id": 0, "name": "guest"}] -> Option B
  5. Quick Check:

    Defaults inserted row = id 0, name guest [OK]
Hint: Defaults fill columns if no values given [OK]
Common Mistakes:
  • Expecting NULL instead of default values
  • Assuming syntax error due to DEFAULT VALUES
  • Thinking table remains empty
4. Consider the table products(id INT NOT NULL, name VARCHAR(20) DEFAULT 'unknown'). What error occurs when running INSERT INTO products DEFAULT VALUES;?
medium
A. Error: Column 'id' has no default and no value provided
B. No error, inserts row with NULL id and 'unknown' name
C. Syntax error due to DEFAULT VALUES usage
D. Inserts row with id=0 and name='unknown'

Solution

  1. Step 1: Check columns for defaults

    The 'id' column has no default and is NOT nullable.
  2. Step 2: Effect of INSERT DEFAULT VALUES

    Trying to insert default values fails because 'id' has no default and no value is given.
  3. Final Answer:

    Error: Column 'id' has no default and no value provided -> Option A
  4. Quick Check:

    Missing default for NOT NULL column causes error [OK]
Hint: All columns need defaults or allow NULL for DEFAULT VALUES [OK]
Common Mistakes:
  • Assuming NULL is inserted automatically
  • Thinking DEFAULT VALUES always works
  • Confusing syntax error with constraint error
5. You have a table orders(order_id INT PRIMARY KEY DEFAULT nextval('order_seq'), status VARCHAR(10) DEFAULT 'pending', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP). Which SQL statement correctly inserts a new order using all defaults except setting status to 'shipped'?
hard
A. INSERT INTO orders (order_id, status, created_at) VALUES (DEFAULT, DEFAULT, 'shipped');
B. INSERT INTO orders DEFAULT VALUES SET status = 'shipped';
C. INSERT INTO orders (status) VALUES ('shipped');
D. INSERT INTO orders (DEFAULT, 'shipped', DEFAULT);

Solution

  1. Step 1: Understand default and explicit values

    We want to use defaults for order_id and created_at, but set status explicitly.
  2. Step 2: Check each option

    INSERT INTO orders (status) VALUES ('shipped'); correctly lets the DBMS use defaults implicitly for unspecified columns order_id and created_at. INSERT INTO orders DEFAULT VALUES SET status = 'shipped'; is invalid syntax. INSERT INTO orders (order_id, status, created_at) VALUES (DEFAULT, DEFAULT, 'shipped'); incorrectly sets status to its default ('pending') and attempts to set created_at to 'shipped' causing a type mismatch error. INSERT INTO orders (DEFAULT, 'shipped', DEFAULT); is invalid syntax (missing VALUES keyword).
  3. Final Answer:

    INSERT INTO orders (status) VALUES ('shipped'); -> Option C
  4. Quick Check:

    Unspecified columns use their default values automatically [OK]
Hint: Unspecified columns in INSERT use column defaults [OK]
Common Mistakes:
  • Thinking omitting columns always causes errors
  • Using DEFAULT VALUES with SET syntax
  • Misplacing values and DEFAULT keywords in VALUES clause
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard