📖 Scenario: You are managing a small bookstore database. You need to add several new books to the books table at once to keep the inventory updated.
🎯 Goal: Learn how to insert multiple rows into the books table using a single INSERT INTO statement.
📋 What You'll Learn
Create a table called books with columns id (integer), title (text), and author (text).
Insert multiple rows into the books table in one INSERT INTO statement.
Use exact values for the books as specified in the instructions.
💡 Why This Matters
🌍 Real World
In real bookstores or libraries, adding multiple new books to the database at once saves time and keeps inventory accurate.
💼 Career
Database administrators and developers often insert multiple records efficiently to maintain data integrity and performance.
Progress0 / 4 steps
1
Create the books table
Write a SQL statement to create a table called books with three columns: id as an integer, title as text, and author as text.
SQL
Hint
Use CREATE TABLE books (id INTEGER, title TEXT, author TEXT); to create the table.
2
Prepare to insert multiple rows
Write a SQL statement that starts an INSERT INTO command for the books table specifying the columns id, title, and author. Do not add the values yet.
SQL
Hint
Use INSERT INTO books (id, title, author) to specify the table and columns.
3
Insert multiple rows with values
Complete the INSERT INTO statement by adding VALUES with three rows: (1, 'The Hobbit', 'J.R.R. Tolkien'), (2, '1984', 'George Orwell'), and (3, 'To Kill a Mockingbird', 'Harper Lee').
SQL
Hint
Use VALUES (1, 'The Hobbit', 'J.R.R. Tolkien'), (2, '1984', 'George Orwell'), (3, 'To Kill a Mockingbird', 'Harper Lee'); to insert multiple rows.
4
Verify the insertion with a SELECT statement
Add a SQL statement to select all columns from the books table to check that the rows were inserted correctly.
SQL
Hint
Use SELECT * FROM books; to see all rows in the table.
Practice
(1/5)
1. What does the SQL statement INSERT INTO table_name (col1, col2) VALUES (1, 'A'), (2, 'B'); do?
easy
A. Deletes rows where col1 is 1 or 2.
B. Updates existing rows with new values.
C. Inserts two new rows into the table with specified values.
D. Creates a new table named table_name.
Solution
Step 1: Understand the INSERT INTO syntax
The statement specifies columns and multiple sets of values separated by commas.
Step 2: Recognize the effect of multiple value sets
Each set of values adds one new row to the table.
Final Answer:
Inserts two new rows into the table with specified values. -> Option C
Hint: Use VALUES with comma-separated rows, no AND or SET [OK]
Common Mistakes:
Using semicolons between value sets
Using AND instead of commas
Using SET keyword incorrectly
3. Given the table products(id INT, name VARCHAR(20)), what will be the result of this query?
INSERT INTO products (id, name) VALUES (1, 'Pen'), (2, 'Pencil'), (3, 'Eraser'); SELECT * FROM products;
medium
A. No rows will be added because SELECT does not insert data.
B. Only one row with id 3 and name Eraser will be added.
C. The query will cause a syntax error.
D. Three new rows with ids 1, 2, 3 and names Pen, Pencil, Eraser will be added.
Solution
Step 1: Analyze the INSERT statement
The INSERT adds three rows with given ids and names in one command.
Step 2: Understand the SELECT statement
SELECT * FROM products will show all rows including the newly inserted ones.
Final Answer:
Three new rows with ids 1, 2, 3 and names Pen, Pencil, Eraser will be added. -> Option D
Quick Check:
Multiple VALUES sets insert multiple rows [OK]
Hint: INSERT adds all rows; SELECT shows them all [OK]
Common Mistakes:
Thinking only last row inserts
Confusing SELECT with INSERT
Expecting syntax error due to multiple rows
4. Identify the error in this SQL statement:
INSERT INTO employees (id, name) VALUES (1, 'John'); (2, 'Jane');
medium
A. Using semicolon between value sets causes syntax error.
B. Missing column names in the statement.
C. VALUES keyword is missing.
D. Using single quotes around names is invalid.
Solution
Step 1: Check punctuation between value sets
Multiple rows must be separated by commas, not semicolons.
Step 2: Confirm correct use of VALUES and quotes
VALUES keyword is present and single quotes for strings are correct.
Final Answer:
Using semicolon between value sets causes syntax error. -> Option A
Quick Check:
Use commas, not semicolons, between multiple VALUES [OK]
Hint: Separate multiple rows with commas, not semicolons [OK]
Common Mistakes:
Using semicolons instead of commas
Omitting column list when required
Misusing quotes around strings
5. You want to insert multiple rows into a table orders(order_id, product, quantity) but only have values for product and quantity. Which query correctly inserts three rows with products and quantities, letting order_id auto-increment?
hard
A. INSERT INTO orders (product, quantity) VALUES ('Book', 2), ('Pen', 5), ('Notebook', 3);
B. INSERT INTO orders VALUES ('Book', 2), ('Pen', 5), ('Notebook', 3);
C. INSERT INTO orders (order_id, product, quantity) VALUES (NULL, 'Book', 2), ('Pen', 5), ('Notebook', 3);
D. INSERT INTO orders (product, quantity) VALUES ('Book', 2); ('Pen', 5); ('Notebook', 3);
Solution
Step 1: Use column list excluding auto-increment column
Specify only product and quantity columns to let order_id auto-fill.
Step 2: Provide multiple value sets separated by commas
INSERT INTO orders (product, quantity) VALUES ('Book', 2), ('Pen', 5), ('Notebook', 3); correctly uses VALUES with comma-separated tuples.
Final Answer:
INSERT INTO orders (product, quantity) VALUES ('Book', 2), ('Pen', 5), ('Notebook', 3); -> Option A
Quick Check:
Omit auto-increment column, list others, use commas [OK]
Hint: List columns except auto-increment, separate rows with commas [OK]
Common Mistakes:
Omitting column list when not providing all columns
Using semicolons between rows
Inserting NULL explicitly for auto-increment column
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.