SQL tutorial

SQL Insert Into Select

Learn more about SQL, a standard language for interacting with databases and storing, manipulating, and retrieving data from databases.

Go hands-on with SQL in our free interactive SQL tutorial.

The INSERT statement in SQL can be combined with a query (SELECT statement) in order to write out the results into a new table. This can be useful for a Data Analyst to save the results of an ad hoc query into an intermediary or working table, or may also be commonly seen in automated transactional queries writing or appending data to tables at a regular cadence (e.g. daily updates of customer information in a retail database).

In this case, the INSERT statement takes the same form as before, only instead of using VALUES and providing the data in the statement itself, we use SELECT and the result is what is inserted into the destination table. The statement takes the form:

Code Example
INSERT INTO <table> SELECT <columns> FROM <table>;

Let’s say we wish to save a backup copy of our employees table into a new table called employee_backup. Our query would take the form below:

Code Example
INSERT INTO employees_backup SELECT * FROM employees;

It should be noted that the employees_backup table in this case must already exist, and match the schema (fields and data types) of the result returned from the SELECT statement.

While here we have shown a very simple example duplicating all records in a table, in practice, INSERT INTO SELECT could be used to write out the results of a more complicated query into a working table. This table could then be queried directly by the user, without worrying about the complexity of the initial SELECT statement used to create it.

Learn SQL Today

Get hands-on experience writing code with interactive tutorials in our free online learning platform.

  • Free and fun
  • Designed for beginners
  • No downloads or setup required