SQL REFERENCE

Data Manipulation Language

Insert data into tables with single-row, multi-row, or SELECT-based inserts.

INSERT INTO ... VALUES

Syntax:

INSERT INTO table_name VALUES (val1, val2, ...);

Single row:

INSERT INTO t VALUES (1, 1.5, 'alice');

Multi-row:

INSERT INTO t VALUES (1, 'x'), (2, 'y'), (3, 'z');

INSERT INTO ... SELECT

INSERT INTO archive SELECT * FROM orders WHERE date < '2024-01-01';

Example from tests:

CREATE TABLE t1 (id INTEGER, val REAL, name VARCHAR);
INSERT INTO t1 VALUES (1, 1.5, 'alice'), (2, 2.5, 'bob');

CREATE TABLE t2 (id INTEGER, val REAL, name VARCHAR);
INSERT INTO t2 SELECT * FROM t1 WHERE id <= 2;

Note: Negative numbers are supported in VALUES:

CREATE TABLE t (x INTEGER);
INSERT INTO t VALUES (-5), (10), (-3);