SQLite INSERT Statement

SQLite'sINSERT INTOstatement is used to add new data rows to a table in the database.

Syntax

The INSERT INTO statement has two basic syntaxes, as follows:

INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
VALUES (value1, value2, value3,...valueN);

Here, column1, column2,...columnN are the names of the columns in the table into which you want to insert data.

If you want to add values for all columns of the table, you do not need to specify column names in the SQLite query. However, make sure the order of the values is the same as the order of the columns in the table. The SQLite INSERT INTO syntax is as follows:

INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

Examples

Suppose you have created the COMPANY table in testDB.db as follows:

sqlite> CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

Now, the following statements will create six records in the COMPANY table:

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Paul', 32, 'California', 20000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (2, 'Allen', 25, 'Texas', 15000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (5, 'David', 27, 'Texas', 85000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (6, 'Kim', 22, 'South-Hall', 45000.00 );

You can also use the second syntax to create a record in the COMPANY table, as shown below:

INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 );

All the above statements will create the following records in the COMPANY table. The next chapter will teach you how to display all these records from a table.

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Use One Table to Populate Another Table

You can populate data into another table by using a SELECT statement on a table with a set of fields. The syntax is as follows:

INSERT INTO first_table_name [(column1, column2, ... columnN)] 
   SELECT column1, column2, ...columnN 
   FROM second_table_name
   [WHERE condition];

You can skip the above statements for now and first learn the SELECT and WHERE clauses introduced in later chapters.

Other Extensions