SQL의 DDL과 DML에 대해 정리한 글입니다.
DDL(Data Definition Language)
데이터베이스의 구조를 정의하거나 변경할 때 사용하는 SQL의 한 종류
특징
- 데이터베이스 객체의 형태나 구조를 정의
- 대부분의 DDL 문은 실행 즉시 자동 커밋되어 되돌릴 수 없음
- 스키마 설계 및 변경 시 필수적으로 사용
주요 명령어
- CREATE: 데이터베이스 객체(테이블, 뷰, 인덱스 등)를 새로 생성할 때 사용
- ALTER: 기존의 데이터베이스 객체를 수정할 때 사용
- DROP: 데이터베이스 객체를 삭제할 때 사용
- TRUNCATE: 테이블의 모든 데이터를 삭제, 테이블 구조는 유지
DML(Data Manipulation Language)
데이터베이스에 저장된 실제 데이터를 조회, 추가, 수정, 삭제하는 데 사용하는 SQL의 한 종류
이미 정의된 테이블 구조 내에서 데이터를 다루는 언어
특징
- 데이터를 실시간으로 다루는 데 사용(조회, 추가, 수정, 삭제)
- 대부분의 DML 명령어는 트랜잭션의 영향을 받으며, ROLLBACK이 가능
- 즉, 실행 후 COMMIT해야 실제 반영되고, ROLLBACK으로 되돌릴 수 있다
더보기
트랜잭션: 데이터베이스에서 하나의 논리적인 작업 단위
여러 개의 DML 문장을 하나의 묶음으로 처리해서,
모두 성공하면 반영(COMMIT)하고 하나라도 실패하면 전부 되돌리는(ROLLBACK) 식으로 일관성 있게 처리
START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
-- 문제가 없으면
COMMIT;
-- 문제가 생기면
ROLLBACK;
주요 명령어
- SELECT: 데이터를 조회할 때 사용
- INSERT: 데이터를 추가할 때 사용 (INSERT INTO ~ VALUES ~)
- UPDATE: 데이터를 수정할 때 사용 (UPDATE ~ SET ~ WHERE ~)
- DELETE: 데이터를 삭제할 때 사용 (DELETE FROM ~ WHERE ~)
'CS' 카테고리의 다른 글
역정규화(Denormalization) (0) | 2025.04.13 |
---|---|
웹 서버(Web Server)와 WAS(Web Application Server) (0) | 2025.03.23 |
Framework와 Library의 차이점 (0) | 2025.03.16 |
Java HashSet의 내부 동작 방식과 중복 제거 메커니즘 (0) | 2025.03.09 |
Stream API: map vs flatMap (0) | 2025.03.03 |