-- 서브쿼리를 이용하여 한번에 여러개의 행 추가(테이블이 존재햐아 함)
-- INSERT INTO 테이블명[(컬럼, 컬럼)] subquery;
ex )
--insa 테이블의 num, name, buseo의 구조만 복사(insa1 테이블 생성)
CREATE TABLE insa1 AS SELECT num, name, buseo FROM insa WHERE 1=0;
INSERT INTO insa1 SELECT num, name, buseo FROM insa WHERE buseo='개발부';
=> insa테이블에서 num,name,buseo 컬럼의 데이터를 가져온다. buseo가 개발부인 데이터만.
INSERT INTO insa1(num,name,buseo) SELECT num, name, buseo FROM insa WHERE buseo='영업부';
=> 괄호안에 있는 컬럼들의 순서대로 서브쿼리의 컬럼 순서대로 데이터를 가져온다. buseo가 영업부인 데이터만.
위 아래 쿼리가 다르지만 실행결과에 차이가 없는 것은 이미 만들어논 테이블의 구조가 insa테이블에 만들어 놓은 컬럼순서가 동일하기 때문이다.
-- 서브쿼리를 이용하여 하나의 INSERT 문으로 여러개의 테이블에 자료 추가
INSERT ALL
INTO test2 VALUES (num,name,birth,memo,created )
INTO test3(num, name,birth, created) VALUES (num, name,birth, created)
SELECT * FROM test1;
INSERT ALL
WHEN num > 3 THEN
INTO test4 VALUES(num,name,birth,memo,created)
WHEN num <= 3 THEN
INTO test5 VALUES (num,name,birth,memo, created)
SELECT * FROM test1;
'오라클 > 테이블' 카테고리의 다른 글
테이블 병합 (0) | 2013.06.01 |
---|---|
테이블에 데이터 추가 (0) | 2013.06.01 |
테이블 삭제 (0) | 2013.06.01 |
테이블 복사하여 새로운 테이블 작성하기 (0) | 2013.06.01 |
테이블에 컬럼 추가,컬럼폭 및 타입변경,컬럼이름수정,컬럼삭제 (0) | 2013.06.01 |