테이블에 새로운 데이터를 삽입(INSERT)하거나
기존의 데이터를 수정(UPDATE)하거나 삭제(DELETE)하는 구문
INSERT INTO 테이블명 VALUES (값1, 값2, ...);
해당 테이블의 모든 컬럼에 대해 추가할 값을 직접 제시하여 한 행을 INSERT할 때 사용
컬럼의 순서, 자료형, 개수를 맞추어 나열해야 한다.
INSERT INTO EMPLOYEE
VALUES(999,'김추석','990909-1122333','kim@naver.com'
,'01011112222','D1','J5','S6',2000000,0.2,100,SYSDATE,NULL,DEFAULT);
INSERT INTO 테이블명(컬럼명1,컬럼명2,컬럼명3) VALUES(값1,값2,값3);
해당 테이블의 특정 컬럼만 선택해서 그 컬럼에 추가할 값만 제시할 때 사용
선택이 안 된 컬럼은 NULL값이 들어가고, DEFAULT가 설정되면 기본값이 들어간다.
단, NOT NULL 제약조건이 걸려있다면 반드시 값을 입력해주어야 한다.
INSERT INTO 테이블명(서브쿼리);
VALUES()로 값을 직접 가입하는 것이 아닌 서브쿼리로 조회한 결과를 INSERT하는 구문
여러 행을 한 번에 INSERT 가능
INSERT INTO EMP_01 (
SELECT EMP_ID,EMP_NAME,DEPT_TITLE
FROM EMPLOYEE,DEPARTMENT
WHERE DEPT_CODE = DEPT_ID(+)
);
INSERT ALL
INTO 테이블명1 VALUES(컬럼명,컬럼명,..)
INTO 테이블명2 VALUES(컬럼명,컬럼명,...)
서브쿼리;
두 개 이상의 테이블에 각각 INSERT할 때 사용
INSERT ALL
WHEN 조건1 THEN
INTO 테이블명1 VALUES(컬럼명,컬럼명,..)
WHEN 조건2 THEN
INTO 테이블명2 VALUES(컬럼명,컬럼명, ..)
서브쿼리
조건에 맞는 값만 넣어준다.
테이블에 기록된 기존의 데이터를 수정하는 구문
UPDATE 테이블명
SET 컬럼명 = 바꿀값
,컬럼명 = 바꿀값
,컬럼명 = 바꿀값
,... (여러개의 컬럼 동시에 변경 가능( , 로 나열해야한다.)
WHERE 조건;
서브쿼리를 수행한 결과값으로 기존의 값을 변경
- CREATE : 서브쿼리를 수행한 결과를 테이블에 넣어 만든다.
- INSERT : 서브쿼리를 수행한 결과를 해당 테이블에 넣는다.
UPDATE 테이블명
SET 컬럼명 = (서브쿼리)
WHERE 조건; (생략 가능)
UPDATE EMP_SALARY
SET DEPT_CODE = (SELECT DEPT_CODE
FROM EMP_SALARY
WHERE EMP_NAME='선동일')
WHERE EMP_NAME='방명수';
테이블에 기록된 데이터를 '행'단위로 삭제하는 구문
DELETE FROM 테이블명
WHERE 조건; --WHERE절은 생략이 가능하지만 생략시에 모든 행이 삭제된다.
DELETE FROM EMP_COPY
WHERE EMP_NAME='노옹철';
테이블의 전체 행을 모두 삭제할 때 사용하는 구문
DELETE 구문보다 속도가 빠르다
ROLLBACK이 되지 않는다.
TRUNCATE TABLE 테이블명;