오라클 SQL · 객체와 성능

DML: INSERT, UPDATE, DELETE, MERGE

DML은 실제 데이터를 추가하고 바꾸고 삭제하는 문법이다. 테이블 구조보다 더 자주 다루게 되는 영역이므로 문장별 목적과 영향 범위를 명확히 이해해야 한다.

DML: INSERT, UPDATE, DELETE, MERGE 대표 이미지

이 글에서 꼭 잡아야 할 것

DML은 실제 데이터를 추가하고 바꾸고 삭제하는 문법이다. 테이블 구조보다 더 자주 다루게 되는 영역이므로 문장별 목적과 영향 범위를 명확히 이해해야 한다.

DML은 데이터베이스를 실제로 움직이게 만드는 문법이다. 조회문은 데이터를 읽지만 DML은 데이터를 바꾸기 때문에 훨씬 조심스럽게 다뤄야 한다. 시험에서는 각 문장이 어떤 결과를 만들고 트랜잭션과 어떻게 연결되는지 함께 묻는 경우가 많다.

난이도 중급
모듈 객체와 성능
학습 시간 10분
핵심 키워드 INSERT, UPDATE, MERGE

개념 지도와 이해 포인트

데이터 추가 INSERT는 새로운 행을 넣는다. 컬럼 목록을 명시하면 안정적이고, 다른 SELECT 결과를 바로 삽입하는 패턴도 자주 쓰인다.
데이터 수정과 삭제 UPDATE는 기존 값을 바꾸고, DELETE는 행을 제거한다. WHERE 절이 없을 때 영향 범위가 커진다는 점을 항상 의식해야 한다.
MERGE 활용 MERGE는 있으면 수정하고 없으면 삽입하는 UPSERT 패턴이다. 배치 적재와 동기화 작업에 특히 유용하다.
DML: INSERT, UPDATE, DELETE, MERGE 개념 다이어그램

대표 문법 패턴

INSERT INTO sql_notes (note_id, topic_name, created_at)
VALUES (1, 'JOIN', SYSDATE);

UPDATE sql_notes
SET topic_name = 'OUTER JOIN'
WHERE note_id = 1;

DELETE FROM sql_notes
WHERE note_id = 1;

문법 읽는 포인트

  • INSERT 시 컬럼 목록을 명시하면 컬럼 순서 변경에 더 안전하다.
  • UPDATE와 DELETE는 WHERE 절 누락 시 전체 데이터에 영향이 간다.
  • MERGE는 동기화 작업을 한 문장으로 정리하는 데 유용하다.

핵심 용어

  • INSERT
  • UPDATE
  • MERGE

소스 데이터와 대상 테이블 동기화하기

MERGE는 “있으면 UPDATE, 없으면 INSERT”라는 두 단계 사고방식을 한 문장으로 합친 것이다. 데이터 동기화 흐름을 먼저 이해한 뒤 문법으로 옮기면 훨씬 자연스럽다.

MERGE INTO target_sales t
USING source_sales s
   ON (t.sale_id = s.sale_id)
WHEN MATCHED THEN
  UPDATE SET t.amount = s.amount
WHEN NOT MATCHED THEN
  INSERT (sale_id, amount)
  VALUES (s.sale_id, s.amount);

수험 체크포인트와 자주 하는 실수

시험 체크포인트

  • DML은 데이터를 바꾸므로 트랜잭션과 연결해서 함께 공부해야 한다.
  • INSERT-UPDATE-DELETE 차이는 행을 추가, 수정, 제거한다는 목적 중심으로 기억하자.
  • MERGE는 UPSERT 패턴의 대표 문법이다.

자주 하는 실수

  • UPDATE와 DELETE에서 WHERE 절을 빠뜨리는 위험을 가볍게 보는 실수
  • INSERT에서 컬럼 순서를 추측에 의존하는 실수
  • MERGE의 MATCHED / NOT MATCHED 흐름을 반대로 읽는 실수

연결 학습

데이터를 바꾸는 문법을 익혔다면 이제 그 변경을 확정하거나 되돌리는 TCL과 권한 관련 DCL이 따라와야 한다. 다음 챕터에서 함께 정리한다.

댓글 0

작성자 이름과 댓글 내용을 입력하면 바로 등록됩니다. 답글은 한 단계까지 지원하고, 댓글은 최대 200자까지 작성할 수 있습니다.

일반 댓글 작성

댓글을 불러오는 중입니다.

같은 카테고리에서 이어서 읽기

지금 읽은 글과 가까운 흐름의 글 5개를 모아 두었습니다. 바로 앞뒤 문맥을 이어서 읽고 싶을 때 가장 편합니다.