INSERT 문을 사용하여 데이터베이스에 존재하는 테이블에 새로운 레코드를 삽입할 수 있다. CUBRID는 INSERT … VALUES 문, INSERT … SET 문, INSERT … SELECT 문을 지원한다.
INSERT … VALUES 문과 INSERT … SET 문은 명시적으로 지정된 값을 기반으로 새로운 레코드를 삽입하며, INSERT … SELECT 문은 다른 테이블에서 조회한 결과 레코드를 삽입할 수 있다. 단일 INSERT 문을 이용하여 여러 행을 삽입하기 위해서는 INSERT … VALUES 문 또는 INSERT … SELECT 문을 사용한다.
<INSERT … VALUES statement>
INSERT [INTO] table_name [(column_name, ...)]
{VALUES | VALUE}({expr | DEFAULT}, ...)[,({expr | DEFAULT}, ...),...]
[ON DUPLICATE KEY UPDATE column_name = expr, ... ]
INSERT [INTO] table_name DEFAULT [ VALUES ]
INSERT [INTO] table_name VALUES()
<INSERT … SET statement>
INSERT [INTO] table_name
SET column_name = {expr | DEFAULT}[, column_name = {expr | DEFAULT},...]
[ON DUPLICATE KEY UPDATE column_name = expr, ... ]
<INSERT … SELECT statement>
INSERT [INTO] table_name [(column_name, ...)]
SELECT...
[ON DUPLICATE KEY UPDATE column_name = expr, ... ]
CREATE TABLE a_tbl1(
id INT UNIQUE,
name VARCHAR,
phone VARCHAR DEFAULT '000-0000');
--insert default values with DEFAULT keyword before VALUES
INSERT INTO a_tbl1 DEFAULT VALUES;
--insert multiple rows
INSERT INTO a_tbl1 VALUES (1,'aaa', DEFAULT),(2,'bbb', DEFAULT);
--insert a single row specifying column values for all
INSERT INTO a_tbl1 VALUES (3,'ccc', '333-3333');
--insert two rows specifying column values for only
INSERT INTO a_tbl1(id) VALUES (4), (5);
--insert a single row with SET clauses
INSERT INTO a_tbl1 SET id=6, name='eee';
INSERT INTO a_tbl1 SET id=7, phone='777-7777';
SELECT * FROM a_tbl1;
id name phone
=========================================================
NULL NULL '000-0000'
1 'aaa' '000-0000'
2 'bbb' '000-0000'
3 'ccc' '333-3333'
4 NULL '000-0000'
5 NULL '000-0000'
6 'eee' '000-0000'
7 NULL '777-7777'