INSERT INTO 테이블명 (column1, column2)
VALUES (data1, data2, ...)
DESC emp;
INSERT INTO emp
VALUES (1001, 'ALICE', 'CLERK', 1003, '16/09/08', 800, NULL, 30);
INSERT INTO emp
VALUES (1002, 'MORRIS', 'CLERK', 1003, '16/09/08', 800, NULL, 30);
INSERT INTO emp
VALUES (1003, 'MATHEW', 'SALEMAN', NULL, '16/01/01', 1500, 100,
30);
INSERT INTO emp (empno, ename)
VALUES (1010, 'BOB');
INSERT INTO emp (empno, ename, job)
VALUES (1011, 'EDWARD', 'MANAGER');
SELECT * FROM emp WHERE empno < 2000;
INSERT INTO 절의 VALUES절을 서브 쿼리로 대신하는 것이 가능하다.
기본 테이블의 여러 행을 한 번에 복사해서 다른 테이블에 입력할 수 있다.
INSERT 문에 지정한 컬럼의 개수와 데이터 타입이 서브쿼리를 수행한 결과와 동일해야만 가능하다.
emp 테이블 구조와 같지만 데이터가 없는 emp_research 테이블 생성
CREATE TABLE emp_research AS SELECT * FROM emp WHERE 1=0;
INSERT INTO emp_research (SELECT * FROM emp WHERE deptno=20);
SELECT * FROM emp_research;
CREATE TABLE emp_hire AS SELECT empno, ename, hiredate FROM emp where 1=0;
CREATE TABLE emp_sal AS SELECT empno, ename, sal FROM emp where 1=0;
emp_hire 테이블
emp_sal 테이블
INSERT ALL
WHEN HIREDATE > '2010/01/01' -- 고용일이 '2010/01/01' 이후인 사원
THEN INTO emp_hire
VALUES(empno, ename, hiredate)
WHEN sal >= 2000 -- 급여가 2000 이상인 사원
THEN INTO emp_sal
VALUES(empno, ename, sal)
SELECT empno, ename, hiredate, sal
FROM emp;
WHEN : 조건
THEN : 결과
emp_hire 테이블
emp_sal 테이블