개요

설명

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'