SQL | INSERT INTO

sql-insert-into

SQL | INSERT INTO Statement

The INSERT INTO statement of SQL is used to insert a new row in a table. There are two ways of using INSERT INTO statement for inserting rows:

  1. Only values: First method is to specify only the value of data to be inserted without the column names.

    INSERT INTO table_name VALUES (value1, value2, value3,…);
    table_name: name of the table.
    value1, value2,.. : value of first column, second column,… for the new record

  2. Column names and values both: In the second method we will specify both the columns which we want to fill and their corresponding values as shown below:

    INSERT INTO table_name (column1, column2, column3,..) VALUES ( value1, value2, value3,..);
    table_name: name of the table.
    column1: name of first column, second column …
    value1, value2, value3 : value of first column, second column,… for the new record

table1

Queries:

Method 1 (Inserting only values) :

INSERT INTO Student VALUES (‘5′,’HARSH’,’WEST BENGAL’,’XXXXXXXXXX’,’19’);

Output:
The table Student will now look like:

ROLL_NONAMEADDRESSPHONEAge
1RamDelhiXXXXXXXXXX18
2RAMESHGURGAONXXXXXXXXXX18
3SUJITROHTAKXXXXXXXXXX20
4SURESHDelhiXXXXXXXXXX18
3SUJITROHTAKXXXXXXXXXX20
2RAMESHGURGAONXXXXXXXXXX18
5HARSHWEST BENGALXXXXXXXXXX19

Method 2 (Inserting values in only specified columns):

INSERT INTO Student (ROLL_NO, NAME, Age) VALUES (‘5′,’PRATIK’,’19’);

Output:
The table Student will now look like:

ROLL_NONAMEADDRESSPHONEAge
1RamDelhiXXXXXXXXXX18
2RAMESHGURGAONXXXXXXXXXX18
3SUJITROHTAKXXXXXXXXXX20
4SURESHDelhiXXXXXXXXXX18
3SUJITROHTAKXXXXXXXXXX20
2RAMESHGURGAONXXXXXXXXXX18
5PRATIKnullnull19

Notice that the columns for which the values are not provided are filled by null. Which is the default values for those columns.

Using SELECT in INSERT INTO Statement

We can utilize the SELECT explanation with INSERT INTO articulation to duplicate columns from one table and insert them into another table.The utilization of this announcement is like that of INSERT INTO proclamation. The thing that matters is that the SELECT explanation is utilized here to select data from an alternate table. The various methods of utilizing INSERT INTO SELECT articulation are demonstrated as follows:

  • Inserting all columns of a table: We can copy all the data of a table and insert into in a different table.

    INSERT INTO first_table SELECT * FROM second_table;

    first_table: name of first table.
    second_table: name of second table.

    We have used the SELECT statement to copy the data from one table and INSERT INTO statement to insert in a different table.

  • Inserting specific columns of a table:

    We can copy only those columns of a table which we want to insert into in a different table.
    Syntax:

    INSERT INTO first_table(names_of_columns1) SELECT names_of_columns2 FROM second_table;
    first_table: name of first table.
    second_table: name of second table.
    names of columns1: name of columns separated by comma(,) for table 1.
    names of columns2: name of columns separated by comma(,) for table 2.

    We have used the SELECT statement to copy the data of the selected columns only from the second table and INSERT INTO statement to insert in first table.

    • Copying specific rows from a table: We can copy specific rows from a table to insert into another table by using WHERE clause with the SELECT statement. We have to provide appropriate condition in the WHERE clause to select specific rows.

      INSERT INTO table1 SELECT * FROM table2 WHERE condition;
      first_table: name of first table.
      second_table: name of second table.
      condition: condition to select specific rows.

    Table2: LateralStudent

    ROLL_NONAMEADDRESSPHONEAge
    7SOUVIKDUMDUMXXXXXXXXXX18
    8NIRAJNOIDAXXXXXXXXXX19
    9SOMESHROHTAKXXXXXXXXXX20

    Queries:

      • Method 1(Inserting all rows and columns):

        INSERT INTO Student SELECT * FROM LateralStudent;

        Output:
        This query will insert all the data of the table LateralStudent in the table Student. The table Student will now look like,

        ROLL_NONAMEADDRESSPHONEAge
        1RamDelhiXXXXXXXXXX18
        2RAMESHGURGAONXXXXXXXXXX18
        3SUJITROHTAKXXXXXXXXXX20
        4SURESHDelhiXXXXXXXXXX18
        3SUJITROHTAKXXXXXXXXXX20
        2RAMESHGURGAONXXXXXXXXXX18
        7SOUVIKDUMDUMXXXXXXXXXX18
        8NIRAJNOIDAXXXXXXXXXX19
        9SOMESHROHTAKXXXXXXXXXX20

     

    • Method 2(Inserting specific columns):

      INSERT INTO Student(ROLL_NO,NAME,Age) SELECT ROLL_NO, NAME, Age FROM LateralStudent;

    Output:

    This query will insert the data in the columns ROLL_NO, NAME and Age of the table LateralStudent in the table Student and the rest of the columns in the Student table will be filled by invalid which is the default estimation of the rest of the columns. The table Student will presently resemble,

  • ROLL_NONAMEADDRESSPHONEAge
    1RamDelhiXXXXXXXXXX18
    2RAMESHGURGAONXXXXXXXXXX18
    3SUJITROHTAKXXXXXXXXXX20
    4SURESHDelhiXXXXXXXXXX18
    3SUJITROHTAKXXXXXXXXXX20
    2RAMESHGURGAONXXXXXXXXXX18
    7SOUVIKnullnull18
    8NIRAJnullnull19
    9SOMESHnullnull20
  • Select specific rows to insert:

    INSERT INTO Student SELECT * FROM LateralStudent WHERE Age = 18;

    Output:
    This query will select only the first row from table LateralStudent to insert into the table Student. The table Student will now look like,

    ROLL_NONAMEADDRESSPHONEAge
    1RamDelhiXXXXXXXXXX18
    2RAMESHGURGAONXXXXXXXXXX18
    3SUJITROHTAKXXXXXXXXXX20
    4SURESHDelhiXXXXXXXXXX18
    3SUJITROHTAKXXXXXXXXXX20
    2RAMESHGURGAONXXXXXXXXXX18
    7SOUVIKDUMDUMXXXXXXXXXX18

 

  • To insert multiple rows in a table using Single SQL Statement
     
    INSERT INTO table_name(Column1,Column2,Column3,.......) 
    VALUES (Value1, Value2,Value3,.....),
            (Value1, Value2,Value3,.....),
             (Value1, Value2,Value3,.....),
             ............................. ;
    table_name: name of the table
    Column1: name of first column, second column …
    Value1, Value2, Value3 : value of first column, second column,… for each new row inserted  
    You need To provide Multiple lists of values where each list is separated by ",". Every list of value corresponds to values to be inserted in each new row of the table. 
    Values in the next list tells values to be inserted in the next Row of the table.     
    

    Example:

    The following SQL statement insert multiple rows in Student Table.

    Input :
    INSERT INTO STUDENT(ID, NAME,AGE,GRADE,CITY) VALUES(1,"AMIT KUMAR",15,10,"DELHI"),
                                                       (2,"GAURI RAO",18,12,"BANGALORE"),
                                                       (3,"MANAV BHATT",17,11,"NEW DELHI"),
                                                        (4,"RIYA KAPOOR",10,5,"UDAIPUR");
    

    Output : STUDENT TABLE
    This query will insert all values in each successive row in the STUDENT TABLE . Thus STUDENT Table will look like this:

    IDNAMEAGEGRADECITY
    1AMIT KUMAR1510DELHI
    2GAURI RAO1612BANGALORE
    3MANAV BHATT1711NEW DELHI
    4RIYA KAPOOR105UDAIPUR