이 글에서 꼭 잡아야 할 것
DML은 실제 데이터를 추가하고 바꾸고 삭제하는 문법이다. 테이블 구조보다 더 자주 다루게 되는 영역이므로 문장별 목적과 영향 범위를 명확히 이해해야 한다.
DML은 데이터베이스를 실제로 움직이게 만드는 문법이다. 조회문은 데이터를 읽지만 DML은 데이터를 바꾸기 때문에 훨씬 조심스럽게 다뤄야 한다. 시험에서는 각 문장이 어떤 결과를 만들고 트랜잭션과 어떻게 연결되는지 함께 묻는 경우가 많다.
개념 지도와 이해 포인트
대표 문법 패턴
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개를 모아 두었습니다. 바로 앞뒤 문맥을 이어서 읽고 싶을 때 가장 편합니다.
PIVOT, UNPIVOT, WITH절 활용
데이터 형태를 회전시키거나 중간 결과를 이름 붙여 재사용하면 복잡한 SQL도 훨씬 읽기 쉬워진다. PIVOT, UNPIVOT, WITH절은 보고서형 SQL에서 특히 빛나는 도구다.
DDL 기초: CREATE, ALTER, DROP, TRUNCATE
DDL은 데이터 구조를 정의하고 바꾸는 문법이다. 테이블과 컬럼을 만드는 CREATE, 구조를 바꾸는 ALTER, 제거하는 DROP과 TRUNCATE를 정확히 구분해야 한다.
제약조건과 데이터 무결성
좋은 데이터베이스는 잘못된 데이터를 애초에 받지 않는다. 제약조건은 데이터 무결성을 보장하는 핵심 장치이며, 오라클 SQL 시험에서도 매우 중요한 주제다.
TCL과 DCL: COMMIT, ROLLBACK, SAVEPOINT, 권한
데이터를 바꾼 뒤에는 그 변경을 확정할지 되돌릴지 결정해야 한다. TCL은 트랜잭션을 제어하고, DCL은 사용자 권한을 관리한다.
뷰, 시퀀스, 인덱스 이해하기
오라클 SQL 실무에서는 테이블만 다루지 않는다. 뷰로 조회를 추상화하고, 시퀀스로 번호를 만들고, 인덱스로 검색 속도를 높인다.
댓글을 불러오는 중입니다.