Saturday, September 23, 2023

What is the difference between INSERT INTO and INSERT INTO SELECT in SQL?

 In SQL, both INSERT INTO and INSERT INTO SELECT are used to insert data into a table, but they serve different purposes and have distinct use cases.

Here's the difference between the two:

  1. INSERT INTO:


    • INSERT INTO is used to insert explicit values into a table, allowing you to specify the values for each column explicitly.

    • It is commonly used when you want to add new records to a table with specific values.

    • You provide the values directly in the VALUES clause.

    • Example:

      INSERT INTO customers (first_name, last_name, email) VALUES ('John', 'Doe', 'john.doe@example.com');
    • This statement inserts a new customer with the specified first name, last name, and email into the "customers" table.


  2. INSERT INTO SELECT:


    • INSERT INTO SELECT is used to insert data into a table by selecting data from another table. It copies data from an existing table and inserts it into the specified table.

    • It is often used when you want to copy data from one table into another or consolidate data from multiple tables.


    • Instead of specifying values directly, you specify a SELECT query that retrieves the data you want to insert.

    • Example:

      INSERT INTO new_customers (first_name, last_name, email) SELECT first_name, last_name, email FROM old_customers WHERE registration_date > '2022-01-01';
    • This statement inserts data into the "new_customers" table by selecting specific columns from the "old_customers" table for records meeting the condition.

In summary, the key difference between INSERT INTO and INSERT INTO SELECT is that the former inserts explicit values into a table, while the latter copies data from one or more existing tables into the target table. INSERT INTO SELECT is a powerful tool for data migration, data consolidation, and creating new tables with data derived from existing ones.

No comments:

Post a Comment

If you have any doubts. Please let me know

How can you create an alias for a table in a SQL query?

In SQL, you can create an alias for a table in a query to give the table a temporary, alternative name that you can use in the query. Table ...