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 구문 사용」
'공부 > SQL' 카테고리의 다른 글
[SQL] 오브젝트 이해 (0) | 2019.12.05 |
---|---|
[SQL] 인라인뷰와 스칼라 서브쿼리 (0) | 2019.12.05 |
[SQL] 서브 쿼리 (0) | 2019.12.04 |
[SQL] 조인 문장 및 집합 연산자 (0) | 2019.12.04 |
[SQL] 조인 처리과정 이해 및 기본 조인 문장 (0) | 2019.12.03 |