Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.3.0 |  CUBRID 8.3.1 |  CUBRID 8.4.0 |  CUBRID 8.4.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 

INSERT … SELECT 문

설명

INSERT 문에 SELECT 질의를 사용하면 하나 이상의 다른 테이블로부터 특정 검색 조건을 만족하는 데이터를 추출하여 대상 테이블에 삽입할 수 있다.

SELECT 문은 VALUES 키워드 대신 사용하거나 VALUES 뒤의 칼럼 값 리스트 내에 부질의로서 포함될 수 있다. VALUES 키워드를 대신하여 SELECT 문을 명시하면, 질의 결과로 얻은 다수의 레코드를 한 번에 대상 테이블 칼럼에 삽입할 수 있다. SELECT 문을 칼럼 값 리스트 내에 부질의로 사용하려면 질의 결과 레코드가 하나여야 한다.

구문

INSERT [INTO] table_name [(column_name, ...)]

    SELECT...

    [ON DUPLICATE KEY UPDATE column_name = expr, ... ]

예제

--creating an empty table which schema replicated from a_tbl1

CREATE TABLE a_tbl2 LIKE a_tbl1;

 

--inserting multiple rows from SELECT query results

INSERT INTO a_tbl2 SELECT * FROM a_tbl1 WHERE id IS NOT NULL;

 

--inserting column value with SELECT subquery specified in the value list

INSERT INTO a_tbl2 VALUES(8, SELECT name FROM a_tbl1 WHERE name <'bbb', DEFAULT);

 

SELECT * FROM a_tbl2;

           id  name                  phone

=========================================================

            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'

            8  'aaa'                 '000-0000'