SQL DDL과 DML 차이 정리 | CREATE, SELECT, INSERT는 뭐가 다를까

SQL을 처음 배우면 가장 헷갈리는 부분 중 하나가 명령어의 역할 구분이다.

같은 SQL이라도 어떤 명령어는 테이블을 만들고, 어떤 명령어는 데이터를 조회한다. 이 차이를 이해하려면 DDL과 DML로 나눠서 보는 것이 핵심이다.


SQL 명령어를 나누는 기준

SQL은 단순히 문법이 아니라 역할에 따라 분류되는 언어다.

DDL → 구조를 다룸
DML → 데이터를 다룸

이 기준만 잡으면 대부분의 SQL 명령어를 쉽게 이해할 수 있다.


DDL이란 무엇인가

DDL은 Data Definition Language의 줄임말이다.

말 그대로 데이터 구조를 정의하는 언어다.

즉,

  • 테이블을 만들고
  • 테이블 구조를 바꾸고
  • 테이블 자체를 삭제하는 작업

이런 것들이 모두 DDL이다.


DDL 대표 명령어

CREATE (테이블 생성)

CREATE TABLE users (
    id INT,
    name VARCHAR(50),
    email VARCHAR(100)
);

👉 새로운 테이블 구조를 만든다


ALTER (구조 변경)

ALTER TABLE users ADD age INT;

👉 기존 테이블 구조를 수정한다


DROP (테이블 삭제)

DROP TABLE users;

👉 테이블 자체를 삭제한다 (구조까지 사라짐)


TRUNCATE (데이터 전체 삭제)

TRUNCATE TABLE users;

👉 테이블은 유지하고 데이터만 전체 삭제


DML이란 무엇인가

DML은 Data Manipulation Language의 줄임말이다.

테이블 안에 들어있는 데이터를 조작하는 언어다.

즉,

  • 데이터를 조회하고
  • 데이터를 넣고
  • 데이터를 수정하고
  • 데이터를 삭제하는 작업

이런 것들이 DML이다.


DML 대표 명령어

SELECT (조회)

SELECT * FROM users;

👉 테이블에 저장된 데이터를 조회


INSERT (데이터 추가)

INSERT INTO users (id, name, email)
VALUES (1, '홍길동', 'hong@test.com');

👉 새로운 데이터를 추가


UPDATE (데이터 수정)

UPDATE users
SET name = '김철수'
WHERE id = 1;

👉 기존 데이터를 수정


DELETE (데이터 삭제)

DELETE FROM users
WHERE id = 1;

👉 특정 데이터를 삭제


DDL vs DML 차이 한 번에 정리

구분 DDL DML

의미 구조 정의 데이터 조작
대상 테이블, DB 테이블 내부 데이터
예시 CREATE, ALTER, DROP SELECT, INSERT, UPDATE, DELETE
DDL = 구조 (틀)
DML = 데이터 (내용)

UPDATE, DELETE에서 가장 중요한 포인트

이건 실전에서 반드시 기억해야 한다.

UPDATE users SET name = '김철수';
DELETE FROM users;

👉 둘 다 WHERE 없이 실행하면 전체 데이터에 적용된다

  • UPDATE → 전체 데이터 수정
  • DELETE → 전체 데이터 삭제

그래서 반드시 조건을 확인해야 한다.

UPDATE users SET name = '김철수' WHERE id = 1;
DELETE FROM users WHERE id = 1;

실전에서 이렇게 구분하면 편하다

작업할 때 이렇게 생각하면 빠르다.

  • 테이블 만들기/삭제 → DDL
  • 데이터 넣기/조회/수정/삭제 → DML
테이블 건드리면 DDL
데이터 건드리면 DML

 

DDL은 테이블 같은 구조를 정의하는 언어이고, DML은 그 안의 데이터를 조작하는 언어다.