DML은 행 데이터를 직접 다룬다

같은 테이블을 두고, 명령마다 읽기·추가·수정·삭제라는 다른 상태 변화가 일어납니다

DDL이 구조를 정의한다면 DML은 저장된 행의 현재 상태를 다룹니다. 핵심은 “테이블 정의”가 아니라 “지금 들어 있는 데이터”입니다.

공통 대상은 하나의 테이블입니다

아래 네 명령은 모두 같은 행 집합을 기준으로 동작합니다. 따라서 DML은 운영 데이터의 현재 상태를 움직이는 언어로 이해하면 빠릅니다.

예시: 회원 테이블의 현재 상태
id  이름  상태
1   민수  ACTIVE
2   지연  PENDING
명령 저장된 상태 변화 왜 중요할까
SELECT 조회
ACTIVE 행만 반환 저장된 테이블은 그대로
읽기만 하므로 데이터를 바꾸지 않습니다. 그래서 DQL로 따로 분류하기도 합니다.
INSERT 추가
+ 3 서연 ACTIVE
새 행이 생깁니다. 기본키, NOT NULL, 외래키 같은 제약을 만족해야 저장됩니다.
UPDATE 수정
2 지연 PENDING -> 지연 ACTIVE
행은 유지되지만 값이 바뀝니다. `WHERE` 조건이 넓으면 여러 행이 함께 변경될 수 있습니다.
DELETE 삭제
- 1 민수 ACTIVE
행 자체가 사라집니다. 트랜잭션 안이라면 롤백으로 되돌릴 수 있습니다.

정리하면 DML은 CRUD를 통해 테이블 안의 현재 데이터 상태를 다루며, 그래서 제약 조건·트랜잭션·동시성 영향과 함께 이해해야 합니다.