SQL > SQL Commands > Insert Into Statement

The INSERT INTO statement is used to add new records into a database table.

In SQL, there are basically two ways to INSERT data into a table: One is to insert it one row at a time, the other is to insert multiple rows at a time. In this section, we'll take a look at the first case.

Syntax

The syntax for inserting data into a table one row at a time is as follows:

INSERT INTO "table_name" ("column1", "column2", ...)
VALUES ("value1", "value2", ...);

Examples

The examples refer to a table that has the following structure,

Table Store_Information
 Column Name  Data Type 
 Store_Name  char(50) 
 Manager_ID  integer 
 Sales  float 
 Txn_Date  datetime 

Example 1: All column names are specified

We want to insert one additional row into the table representing the sales data for Los Angeles on January 10, 1999. On that day, this store had $900 in sales, and the Manager_ID for this store is 10. We will use the following SQL script:

INSERT INTO Store_Information (Store_Name, Manager_ID, Sales, Txn_Date)
VALUES ('Los Angeles', 10, 900, 'Jan-10-1999');

Now the table will hold the following data:

Table Store_Information
 Store_Name  Manager_ID  Sales  Txn_Date 
 Los Angeles  10  900  Jan-10-1999 

Please note that we can specify the column names in any order -- the order does not have to be the same as that of the table. For example, the following SQL statement is equivalent to the SQL statement above:

INSERT INTO Store_Information (Sales, Store_Name, Manager_ID, Txn_Date)
VALUES (900, 'Los Angeles', 10, 'Jan-10-1999');

Example 2: None of the column names are specified

If we leave off the column names in the INSERT INTO statement, we will need to make sure that data is inserted in the same column order as that in the table. For example,

INSERT INTO Store_Information
VALUES ('Los Angeles', 10, 900, 'Jan-10-1999');

will give us the desired result, while

INSERT INTO Store_Information
VALUES (900, 'Los Angeles', 10, 'Jan-10-1999');

will result in Store_Name being set to 900, Manager_ID being set to 'Los Angeles', and Sales being set to 10. Clearly this is not what we intend to accomplish.

Example 3: Some of the column names are specified

In the first two examples, we insert a value for every column in the table. Sometimes, we may decide to insert value into some of the columns and leave the rest of the columns blank. For those cases, we simply specify the column names that we want to insert values into in our SQL statement. Below is an example:

INSERT INTO Store_Information (Store_Name, Sales, Txn_Date)
VALUES ('New York', 500, 'Jan-10-1999');

Now the table becomes:

Table Store_Information
 Store_Name  Manager_ID  Sales  Txn_Date 
 Los Angeles  10  900  Jan-10-1999 
 New York     500  Jan-10-1999 

In this case, the value for the Manager_ID column in the second row is NULL. NULL means that data does not exist, and we discuss the concept of NULL later in this tutorial.

Exercises

1. Let's assume we start with the Store_Information table shown above. What does the table look like after the following SQL statement is executed?
INSERT INTO Store_Information VALUES ('San Jose',25,700,'Jan-10-1999');

2. Continuing with Question 1. What does the table look like after the following SQL statement is executed?
INSERT INTO Store_Information (Manager_ID,Txn_Date,Sales) VALUES (10,600,'Jan-11-1999');

3. Using the same table as above. What does the table look like after the following SQL statement is executed?
INSERT INTO Store_Information ('Portland',30,650,'Jan-11-1999');

Next: SQL INSERT INTO SELECT

This page was last updated on June 19, 2023.




Copyright © 2024   1keydata.com   All Rights Reserved     Privacy Policy     About   Contact