Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

DBMS에서 DDL과 DML의 차이점 완벽 정리

데이터베이스를 다루다 보면 반드시 접하게 되는 두 가지 언어가 있습니다. 바로 DDL(Data Definition Language)DML(Data Manipulation Language)입니다. 이 두 언어는 이름은 비슷하지만 역할과 사용 목적이 완전히 다릅니다. 이 글에서는 DDL과 DML의 개념을 살펴보고, 두 언어의 핵심적인 차이점을 비교해 보겠습니다.

DDL(데이터 정의어)이란?

DDL은 Data Definition Language의 약자로, 한국어로는 '데이터 정의어'라고 부릅니다. DDL은 데이터 자체가 아니라 데이터가 저장될 구조를 정의하는 데 사용되는 언어입니다. 스키마(schema), 데이터베이스, 테이블, 제약조건(constraints) 등을 생성하거나 수정할 때 활용됩니다.

대표적인 DDL 명령어로는 CREATE(생성)와 ALTER(수정) 문이 있으며, 그 외에도 DROP, RENAME, TRUNCATE 등이 있습니다.

주요 DDL 명령어 예시

  • CREATE: 새로운 테이블이나 데이터베이스 객체를 생성합니다.
  • ALTER: 기존 테이블의 구조나 컬럼을 변경합니다.
  • DROP: 테이블이나 데이터베이스 객체를 삭제합니다.
  • TRUNCATE: 테이블 구조는 유지한 채 모든 데이터를 삭제합니다.

DML(데이터 조작어)이란?

DML은 Data Manipulation Language의 약자로, 한국어로는 '데이터 조작어'라고 부릅니다. DML은 테이블에 저장된 실제 데이터를 조작하는 데 사용되는 언어입니다. 즉, 레코드(record) 단위로 데이터를 삽입하거나 수정, 삭제할 때 활용됩니다.

대표적인 DML 명령어로는 INSERT(삽입), UPDATE(수정), DELETE(삭제) 문이 있습니다. 참고로 데이터를 조회하는 SELECT 문은 엄밀히 따지면 DQL(Data Query Language)로 분류되기도 하지만, 넓은 의미에서는 DML에 포함되는 것으로 간주하기도 합니다.

주요 DML 명령어 예시

  • INSERT: 테이블에 새로운 레코드를 추가합니다.
  • UPDATE: 기존 레코드의 값을 수정합니다.
  • DELETE: 특정 조건에 맞는 레코드를 삭제합니다.

DDL과 DML의 주요 차이점 비교

아래 표는 DDL과 DML의 중요한 차이점을 한눈에 비교한 내용입니다.

번호구분 기준DDLDML
1정의Data Definition Language(데이터 정의어)Data Manipulation Language(데이터 조작어)
2용도데이터베이스, 스키마, 제약조건, 사용자, 테이블 등의 구조를 생성하는 데 사용테이블에 저장된 레코드를 삽입, 수정 또는 삭제하는 데 사용
3분류별도의 세부 분류가 없음절차적(procedural) DML과 비절차적(non-procedural) DML로 세분화됨
4명령어CREATE, DROP, RENAME, ALTER 등INSERT, UPDATE, DELETE 등
5트랜잭션 처리실행 시 자동으로 커밋(auto-commit)되어 롤백이 불가능함트랜잭션 관리 대상이므로 커밋 전에는 롤백(ROLLBACK)이 가능함

마무리: DDL과 DML, 어떻게 구분할까?

간단히 정리하면, DDL은 데이터베이스의 '틀(구조)'을 만들고 변경하는 언어이고, DML은 그 안에 담긴 '데이터'를 다루는 언어입니다. 또 하나 기억할 점은 DDL 명령어는 실행 즉시 반영되어 되돌릴 수 없지만, DML 명령어는 트랜잭션 범위 안에서 커밋하기 전까지 취소(롤백)할 수 있다는 것입니다. 이 차이를 이해하고 있으면 실무에서 실수로 인한 데이터 손실을 예방하는 데 큰 도움이 됩니다.