#하나의 질의어로 SELECT 후 INSERT를 하는 방법

 

#일반적인 INSERT문

INSERT INTO
    테이블(
    컬럼1,
    컬럼2,
    컬럼3
    )
VALUES(
    ?,
    ?,
    ?
)

 

#SELECT한 결과를 INSERT하는 방법

VALUES를 작성하는 자리에 SELECT문을 작성하면 된다

 

이때 INSERT하는 항목수와  SELECT하는 항목수는 같아야한다

위에서부터 순차적으로 들어가기때문에 컬럼명은 상관이 없다

INSERT INTO
    테이블(
    컬럼1,
    컬럼2,
    컬럼3
    )
SELECT
    컬럼1,
    컬럼2,
    컬럼3
FROM
    테이블
WHERE
    조건

 

 

#SELECT결과와 인수를 동시에 INSERT할때는 아래와 같다

INSERT INTO
    테이블(
    컬럼1,
    컬럼2,
    컬럼3,
    컬럼4  -- DATE타입 컬럼
    )
SELECT
    컬럼1,
    컬럼2,
    ?,   --스프링이라면 ?대신에 ${변수명 or 인수명}
    TO_DATE(?, 'YYYYMMDD') -- 인수를 타입에 맞게 변환
FROM
    테이블
WHERE
    조건

 

 

#또한 SELECT항목수와 INSERT항목수가 같다면 INSERT 컬럼명은 생략 가능하다

INSERT INTO
    테이블 --컬럼이 3개 밖에 없는 테이블
SELECT
    컬럼1,
    컬럼2,
    컬럼3
FROM
    테이블
WHERE
    조건

 

#검색과 삽입 하는 테이블의 컬럼갯수가 둘다 같다면 *를 사용해 간단하게 할 수 있다

INSERT INTO
    테이블 --컬럼이 10개인 테이블
SELECT
    *
FROM
    테이블 --컬럼이 10개인 테이블
WHERE
    조건

'DB > Oracle' 카테고리의 다른 글

[ORACLE] 문자열 합치기  (0) 2020.11.17
[ORACLE] SELECT to UPDATE  (0) 2020.11.09
[ORACLE] 테이블 결합 OR 조건절 없이 테이블 JOIN하는 방법  (0) 2020.10.29
[ORACLE] DECODE  (0) 2020.10.28
[ORACLE] WHERE 동적 조건문 작성법  (0) 2020.10.22

+ Recent posts