Bird
Raised Fist0
MySQLquery~5 mins

INSERT with SELECT in MySQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the INSERT with SELECT statement do in SQL?
It copies data from one table and inserts it into another table using a SELECT query inside the INSERT statement.
Click to reveal answer
beginner
Write the basic syntax of INSERT with SELECT.
INSERT INTO target_table (column1, column2) SELECT column1, column2 FROM source_table WHERE condition;
Click to reveal answer
beginner
Can you use INSERT with SELECT to insert multiple rows at once?
Yes, the SELECT can return many rows, and all will be inserted into the target table in one statement.
Click to reveal answer
intermediate
What must match between the INSERT columns and the SELECT columns?
The number and order of columns in the INSERT clause must match the columns selected in the SELECT clause.
Click to reveal answer
intermediate
Why might you use INSERT with SELECT instead of multiple INSERT statements?
It is faster and simpler to copy many rows at once from one table to another without writing many separate INSERT commands.
Click to reveal answer
What does the INSERT with SELECT statement do?
ADeletes data from a table
BCreates a new table
CUpdates data in a table
DCopies data from one table to another using a SELECT query
Which must be true for the columns in INSERT with SELECT?
AThe SELECT can have more columns than INSERT
BThe number and order of columns must match
CThe columns can be in any order
DThe INSERT can have more columns than SELECT
Can INSERT with SELECT insert multiple rows at once?
AOnly if the table is empty
BNo, it inserts only one row
CYes, it inserts all rows returned by SELECT
DOnly if you use a loop
Which SQL keyword is used inside INSERT with SELECT to get data?
ASELECT
BUPDATE
CDELETE
DCREATE
Why use INSERT with SELECT instead of many single INSERTs?
AIt is faster and simpler for many rows
BIt deletes old data automatically
CIt creates indexes
DIt changes table structure
Explain how the INSERT with SELECT statement works and when you might use it.
Think about copying data between tables without typing many INSERT commands.
You got /4 concepts.
    Describe the rules for matching columns in INSERT with SELECT.
    Imagine matching puzzle pieces for columns.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the INSERT INTO ... SELECT statement do in MySQL?
      easy
      A. Copies rows from one table to another matching column structure
      B. Deletes rows from a table based on a condition
      C. Updates existing rows in a table
      D. Creates a new table with selected columns

      Solution

      1. Step 1: Understand the purpose of INSERT INTO ... SELECT

        This statement copies data from one table to another by selecting rows from the source table.
      2. Step 2: Recognize the matching column requirement

        The columns selected must match the target table's columns in number and type to insert correctly.
      3. Final Answer:

        Copies rows from one table to another matching column structure -> Option A
      4. Quick Check:

        INSERT with SELECT copies rows [OK]
      Hint: Think of copying rows from one table to another [OK]
      Common Mistakes:
      • Confusing INSERT with SELECT as a delete or update operation
      • Thinking it creates a new table
      • Assuming it modifies existing rows instead of inserting
      2. Which of the following is the correct syntax to insert rows from table1 into table2 using INSERT INTO ... SELECT?
      easy
      A. INSERT INTO table1 SELECT * FROM table2;
      B. INSERT table2 INTO SELECT * FROM table1;
      C. INSERT INTO table2 SELECT * FROM table1;
      D. SELECT * INTO table2 FROM table1;

      Solution

      1. Step 1: Identify correct INSERT INTO ... SELECT syntax

        The correct syntax is INSERT INTO target_table SELECT ... FROM source_table;.
      2. Step 2: Match the option to syntax

        INSERT INTO table2 SELECT * FROM table1; matches this syntax exactly, inserting rows from table1 into table2.
      3. Final Answer:

        INSERT INTO table2 SELECT * FROM table1; -> Option C
      4. Quick Check:

        Correct INSERT INTO ... SELECT syntax = INSERT INTO table2 SELECT * FROM table1; [OK]
      Hint: Remember: INSERT INTO target SELECT ... FROM source [OK]
      Common Mistakes:
      • Swapping table names in INSERT and SELECT
      • Using SELECT INTO which is not standard in MySQL
      • Incorrect keyword order like INSERT table INTO
      3. Given two tables:
      employees(id, name, department)
      managers(id, name, department)
      What will be the result of this query?
      INSERT INTO managers (id, name, department) SELECT id, name, department FROM employees WHERE department = 'Sales';
      medium
      A. Only employees from Sales department are copied to managers
      B. All employees are copied to managers
      C. No rows are copied because of syntax error
      D. Only managers from Sales department are updated

      Solution

      1. Step 1: Analyze the SELECT part with WHERE clause

        The SELECT picks only employees where department equals 'Sales'.
      2. Step 2: Understand INSERT INTO effect

        These selected rows are inserted into the managers table, adding only Sales department employees.
      3. Final Answer:

        Only employees from Sales department are copied to managers -> Option A
      4. Quick Check:

        WHERE filters rows inserted [OK]
      Hint: WHERE filters rows to insert [OK]
      Common Mistakes:
      • Assuming all employees are copied ignoring WHERE
      • Thinking it updates existing rows instead of inserting
      • Confusing syntax causing no rows inserted
      4. What is wrong with this query?
      INSERT INTO products (id, name) SELECT id, name, price FROM items;
      medium
      A. Missing WHERE clause causes syntax error
      B. Number of columns in INSERT and SELECT do not match
      C. Table names are reversed
      D. No error, query runs fine

      Solution

      1. Step 1: Compare columns in INSERT and SELECT

        INSERT specifies 2 columns (id, name), but SELECT returns 3 columns (id, name, price).
      2. Step 2: Understand column count requirement

        Number of columns must match exactly; mismatch causes error.
      3. Final Answer:

        Number of columns in INSERT and SELECT do not match -> Option B
      4. Quick Check:

        Column count mismatch causes error [OK]
      Hint: Match column count in INSERT and SELECT [OK]
      Common Mistakes:
      • Ignoring extra columns in SELECT
      • Thinking WHERE is mandatory
      • Assuming reversed table names cause error
      5. You want to copy only unique customer emails from orders to newsletter_subscribers without duplicates. Which query achieves this?
      hard
      A. INSERT INTO newsletter_subscribers (email) SELECT email FROM orders GROUP BY email HAVING COUNT(*) > 1;
      B. INSERT INTO newsletter_subscribers (email) SELECT email FROM orders WHERE email NOT IN newsletter_subscribers;
      C. INSERT INTO newsletter_subscribers (email) SELECT email FROM orders WHERE email IS NULL;
      D. INSERT INTO newsletter_subscribers (email) SELECT DISTINCT email FROM orders;

      Solution

      1. Step 1: Identify how to select unique emails

        Using SELECT DISTINCT email returns unique emails from orders.
      2. Step 2: Insert unique emails into newsletter_subscribers

        INSERT INTO with SELECT DISTINCT copies only unique emails, avoiding duplicates.
      3. Final Answer:

        INSERT INTO newsletter_subscribers (email) SELECT DISTINCT email FROM orders; -> Option D
      4. Quick Check:

        Use DISTINCT to avoid duplicates [OK]
      Hint: Use SELECT DISTINCT to insert unique rows [OK]
      Common Mistakes:
      • Using WHERE NOT IN with incorrect syntax
      • Grouping but selecting only duplicates
      • Inserting NULL emails unintentionally
      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