SQL - INSERT

Overview

Insert rows explicitly or from another query.

INSERT INTO departments (name) VALUES ('Engineering'), ('HR');
INSERT INTO employees (first_name, department_id, salary, hired_at)
VALUES ('Ada', 1, 120000.00, NOW());

-- from SELECT
INSERT INTO employees (first_name)
SELECT name FROM departments;
INSERT INTO departments (name) VALUES (N'Engineering'), (N'HR');
INSERT INTO employees (first_name, department_id, salary, hired_at)
VALUES (N'Ada', 1, 120000.00, SYSDATETIME());

-- from SELECT
INSERT INTO employees (first_name)
SELECT name FROM departments;
INSERT INTO departments (name) VALUES ('Engineering'), ('HR');
INSERT INTO employees (first_name, department_id, salary, hired_at)
VALUES ('Ada', 1, 120000.00, datetime('now'));

-- from SELECT
INSERT INTO employees (first_name)
SELECT name FROM departments;

Prerequisite

Load the Standard Test Data.

Expected Output (live; wrapped in a transaction)

idfirst_namedepartmentsalary
1AdaEngineering120000
2BobEngineering90000
3ChenHR80000
4DeeSales110000
5EliEngineering130000
6MiaMarketing95000

Sample Use Cases (3)

1) Multi-row insert

idname
1Engineering
2HR
3Sales
4Ops
5Legal

2) Insert from SELECT

idfirst_namedepartment_id
1Ada1
2Bob1
3Chen2
4Dee3
5Eli1

3) Insert order with items

idcustomer_idorder_datetotal
412024-06-0149.99
idorder_idproduct_idqtyprice
742149.99