개발/SQL

DML과 DDL 차이점: SELECT, INSERT, UPDATE, DELETE vs CREATE, ALTER, DROP

예니03 2025. 3. 6. 08:41
반응형

SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 관리하는 데 사용되는 언어입니다. SQL은 여러 개의 하위 언어로 구성되며, 그중에서도 DML(데이터 조작어)과 DDL(데이터 정의어)은 가장 많이 사용되는 두 가지 유형입니다.

이 글에서는 DML과 DDL의 차이점을 비교하고 각각의 명령어를 쉽게 설명하겠습니다.

 

🔹 DML (Data Manipulation Language, 데이터 조작어)란?

DML은 데이터를 조작하는 명령어로, 데이터베이스의 테이블에 저장된 데이터를 조회, 삽입, 수정, 삭제하는 역할을 합니다.

DML의 특징

  • 테이블 구조는 변경하지 않고, 데이터만 조작
  • 데이터가 변경될 수 있어 트랜잭션 관리(COMMIT, ROLLBACK) 가능
  • 실무에서 가장 많이 사용되는 SQL 문법

DML 주요 명령어

명령어 기능
SELECT 데이터를 조회
INSERT 새로운 데이터를 추가
UPDATE 기존 데이터를 수정
DELETE 특정 데이터를 삭제

 

📌 DML 문법 예제

1️⃣ SELECT – 데이터 조회

SELECT * FROM employees;
  • employees 테이블의 모든 데이터를 조회
SELECT name, salary FROM employees WHERE department = '개발팀';
  • 특정 컬럼(name, salary)만 조회하고 WHERE 조건을 적용

 

2️⃣ INSERT – 데이터 삽입

INSERT INTO employees (id, name, department, salary)
VALUES (1, '김철수', '개발팀', 5000000);
  • employees 테이블에 새로운 행을 추가

 

3️⃣ UPDATE – 데이터 수정

UPDATE employees
SET salary = 5500000
WHERE id = 1;
  • id가 1인 직원의 salary 값을 변경

 

4️⃣ DELETE – 데이터 삭제

DELETE FROM employees WHERE id = 1;
  • id가 1인 직원의 데이터를 삭제

💡 주의: DELETE 사용 시 WHERE 조건을 반드시 지정해야 합니다.
만약 DELETE FROM employees;라고 실행하면 모든 데이터가 삭제됩니다! 😨

 

🔹 DDL (Data Definition Language, 데이터 정의어)란?

DDL은 데이터베이스의 테이블과 구조를 정의하는 명령어로, 테이블을 생성하거나 수정하고 삭제하는 역할을 합니다.

DDL의 특징

  • 데이터가 아닌 테이블, 스키마, 인덱스 등의 구조를 조작
  • 실행 후 자동으로 커밋(COMMIT)이 수행되어 롤백 불가능
  • 실수로 테이블을 삭제하면 데이터를 복구하기 어렵기 때문에 주의가 필요

DDL 주요 명령어

명령어 기능
CREATE 테이블, 데이터베이스 생성
ALTER 기존 테이블 구조 변경
DROP 테이블, 데이터베이스 삭제

 

📌 DDL 문법 예제

1️⃣ CREATE – 테이블 생성

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    department VARCHAR(50),
    salary INT
);
  • employees 테이블을 생성하며, id를 기본 키(Primary Key)로 설정

 

2️⃣ ALTER – 테이블 수정

ALTER TABLE employees ADD COLUMN email VARCHAR(100);
  • employees 테이블에 email 컬럼 추가
ALTER TABLE employees MODIFY COLUMN salary BIGINT;
  • salary 컬럼의 데이터 타입을 BIGINT로 변경

 

3️⃣ DROP – 테이블 삭제

DROP TABLE employees;
  • employees 테이블을 완전히 삭제

주의: DROP을 실행하면 데이터도 함께 삭제되므로 신중하게 사용해야 합니다.

 

🔹 DML vs DDL 차이점 비교

구분 DML (Data Manipulation Language) DDL (Data Definition Language)
역할 데이터 조회, 추가, 수정, 삭제 테이블 및 데이터베이스 구조 변경
주요 명령어 SELECT, INSERT, UPDATE, DELETE CREATE, ALTER, DROP
트랜잭션 관리 COMMIT, ROLLBACK 가능 자동 COMMIT (ROLLBACK 불가능)
데이터 영향 데이터만 변경, 테이블 구조는 유지 테이블 구조 자체가 변경됨
사용 예시 직원 정보를 조회하거나 급여를 수정 새로운 테이블을 만들거나 삭제

 

🔹 DML과 DDL의 활용 예시

DML을 사용할 때

  • 고객 정보 조회 (SELECT)
  • 주문 내역 추가 (INSERT)
  • 직원의 부서 이동 (UPDATE)
  • 특정 회원 탈퇴 (DELETE)

DDL을 사용할 때

  • 새로운 회원 테이블 생성 (CREATE)
  • 기존 테이블에 이메일 컬럼 추가 (ALTER)
  • 사용하지 않는 테이블 삭제 (DROP)
반응형