데이터 추가
테이블 복사하여 생성하기
CREATE TABLE DEPT_TEMP AS SELECT * FROM DEPT; -- 값 없이 구조만 복사하고 싶을 때 CREATE TABLE DEPT_TEMP AS SELECT * FROM DEPT WHERE 1<>1; -- 항상 false라서 값 복사가 안 됨
insert into
INSERT INTO DEPT_TEMP (DEPTNO, DNAME, LOC) VALUES(50, 'DB', 'SEOUL'); -- 열 지정 생략 INSERT INTO DEPT_TEMP VALUES(50, 'DB', 'SEOUL'); -- null데이터 입력 INSERT INTO DEPT_TEMP (DEPTNO, LOC) VALUES(50, 'SEOUL'); -- 열과 값 생략, 혹은 직접 null입력, 혹은 빈 공백문자열('')
날짜 데이터 입력
-- 기본 순서: 연월일 INSERT INTO EMP_TEMP(HIREDATE) VALUES('2001-10-10'); INSERT INTO EMP_TEMP(HIREDATE) VALUES('2001/10/10'); -- TO_DATE: 연월일 순서를 바꾸고자 할 때 INSERT INTO EMP_TEMP(HIREDATE) VALUES(TO_DATE('10/10/2001', 'DD/MM/YYYY'));
서브쿼리로 여러 데이터 한꺼번에 추가
-- SALGRADE 테이블을 참조하여 급여등급이 1인 사원만 추가하기 INSERT INTO EMP_TEMP (EMPNO, ENAME, JOB, MGR, ...) SELECT E.EMPNO, E.ENAME, E.JOB, E.MGR... FROM EMPE E, SALGRADE S WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL AND S.GRADE = 1;
values절은 사용하지 않는다. 추가하는 열의 개수와 자료형은 일치해야 한다.