INSERT 
 - INSERT 문을 사용하여 테이블에 새 행을 입력한다.
 - VALUSER 키워드를 사용해 한 번에 한 행만 삽입 가능하다.

 - ex) 부서 테이블에 부서 번호 70, 부서 이름 'MARKETING', 위치 'B1' 삽입 

1
2
INSERT INTO dept(deptno, dname,loc_code)
VALUES(70'MARKETING''B1');
 

 

 서브 쿼리를 이용한 INSERT
 - 서브 쿼리를 이용하여 새 행을 입력한다.
 - INSERT 절의 열 수와 서브 쿼리의 열 수가 일치해야 한다.
 - 한 번에 여러 행을 입력할 수 있다.

 

 

 

 UPDATE
 - UPDATE 구문을 이용하여 특정 열의 값을 변경할 수 있다.
 - WHERE 절을 생략하면 테이블의 모든 행이 수정된다.

 - ex) 10번 부서의 부서 이름을 'SALES'로 수정

1
2
3
UPDATE dept
SET dname = 'SALES'
WHERE deptno = 10;
 

 

 서브 쿼리를 이용한 UPDATE
 - UPDATE 문의 서브 쿼리를 사용하면 다른 테이블의 값을 기반으로 테이블 행을 갱신할 수 있다.

 

 

 

 DELETE
 - DELETE문을 사용하여 기존 행을 삭제한다.
 - WHERE절을 지정하여 특정 행을 삭제한다.
 - WHERE절을 생략하면 모든 행이 삭제된다.

 - ex) 부서 테이블에서 부서 번호가 10인 행을 삭제

1
2
DELETE dept
WHERE deptno = 10;
 

 

 서브 쿼리를 이용한 DELETE
 - DELETE 문의 서브 쿼리를 사용하면 다른 테이블의 값을 기반으로 테이블행을 삭제할 수 있다.

 

 

 

 MERGE
 - 행을 조건에 따라 테이블에 갱신하거나 입력할 수 있으므로 UPDATE문을 여러 번 사용하지 않아도 된다.
 - 테이블에 대한 수정 · 입력 여부는 ON절의 조건에 의해 결정된다.
 - MERGE는 INSERT와 UPDATE 명령을 결합한 것이다.

 - ex) 두 테이블에 같은 사원 번호의 존재하면...

1
2
3
4
5
6
7
8
9
10
MERGE INTO emp_mast T
USING emp E
ON (T.empno = E.empno)
WHEN MATCHED THEN
    UPDATE SET 
        T.sal = T.sal + E.sal,
        T.comm = E.comm
WHEN NOT MATCHED THEN
    INSERT (empno, ename, sal, comm)
    VALUES (E.empno, E.ename, E.sal, E.comm);
 

 

 

 

 오늘의 한 줄 : MERGE가 뭔지 이제 알겠다


 

 

 

 

 

 출처 : SK 동반성장 아카데미, 비전공자를 위한 SQL 입문, 「INSERT ˙ UPDATE ˙ DELETE 구문 사용」

+ Recent posts