본문 바로가기

IT

SQL의 핵심 개념인 DML과 DDL의 차이점

반응형

SQL

📌 DML과 DDL의 차이점: SQL 필수 개념 완벽 정리!

SQL의 핵심 개념인 DML과 DDL을 완벽하게 이해하고 싶다면?
데이터 조작과 데이터 정의의 차이를 정확히 설명합니다.


 

✅ 1. DML과 DDL이란?

SQL(Structured Query Language)은 데이터베이스 관리를 위한 언어이며, DML(Data Manipulation Language, 데이터 조작 언어)과 DDL(Data Definition Language, 데이터 정의 언어)로 나뉩니다.

DML(Data Manipulation Language) - 데이터 조작 언어

DML은 데이터베이스에 저장된 데이터를 조회, 삽입, 수정, 삭제하는 명령어입니다.
즉, 사용자가 데이터를 조작(변경)하는 기능을 담당합니다.

 

DML 주요 명령어

SELECT 데이터를 조회
INSERT 새로운 데이터 삽입
UPDATE 기존 데이터 수정
DELETE 기존 데이터 삭제

 


DDL(Data Definition Language) - 데이터 정의 언어

DDL은 데이터베이스 구조(테이블, 뷰, 인덱스 등)를 생성, 수정, 삭제하는 명령어입니다.
즉, 데이터의 저장 구조를 정의하는 역할을 합니다.

 

★ DDL 주요 명령어

CREATE 새로운 테이블, 뷰, 인덱스 생성
ALTER 기존 테이블 또는 컬럼 수정
DROP 테이블, 뷰, 인덱스 삭제
TRUNCATE 테이블의 모든 데이터 삭제 (테이블 구조는 유지)

 


✅ 2. DML과 DDL의 차이점

구분 DML (데이터 조작 언어) DDL (데이터 정의 언어)

역할 데이터를 조회, 삽입, 수정, 삭제 데이터베이스 객체(테이블, 인덱스 등) 생성/변경
주요 명령어 SELECT, INSERT, UPDATE, DELETE CREATE, ALTER, DROP, TRUNCATE
데이터 변경 여부 ✅ 데이터 값 변경 ❌ 데이터 구조 변경
트랜잭션 지원 ✅ 가능 (COMMIT, ROLLBACK 가능) ❌ 불가능
ROLLBACK 지원 ✅ 가능 ❌ 불가능
실행 대상 테이블 내부의 데이터 테이블 및 데이터베이스 구조

 

📌 핵심 요약

  • DML: 데이터를 조회, 추가, 수정, 삭제하는 명령어
  • DDL: 데이터베이스 구조(테이블, 인덱스 등)를 정의하는 명령어
  • DML은 트랜잭션(ROLLBACK, COMMIT) 지원, DDL은 지원하지 않음.

✅ 3. DML과 DDL 예제

📌 DML 예제 (데이터 조작)

-- 1. 데이터 조회 (SELECT)
SELECT * FROM Employees WHERE Age > 30;

-- 2. 데이터 삽입 (INSERT)
INSERT INTO Employees (EmployeeID, Name, Age, Department) 
VALUES (1, '김철수', 35, 'HR');

-- 3. 데이터 수정 (UPDATE)
UPDATE Employees 
SET Age = 36 
WHERE EmployeeID = 1;

-- 4. 데이터 삭제 (DELETE)
DELETE FROM Employees WHERE EmployeeID = 1;

 

📌 DML 특징

  • 데이터를 추가(INSERT), 수정(UPDATE), 삭제(DELETE) 가능
  • SELECT 문을 통해 데이터 조회 가능
  • 트랜잭션을 사용할 수 있어 ROLLBACK 가능

📌 DDL 예제 (데이터 정의)

-- 1. 테이블 생성 (CREATE)
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    Name VARCHAR(50),
    Age INT,
    Department VARCHAR(50)
);

-- 2. 테이블 수정 (ALTER)
ALTER TABLE Employees ADD Salary DECIMAL(10,2);

-- 3. 테이블 삭제 (DROP)
DROP TABLE Employees;

-- 4. 데이터만 삭제 (TRUNCATE)
TRUNCATE TABLE Employees;

 

📌 DDL 특징

  • 테이블, 뷰, 인덱스 등 데이터베이스 객체를 생성(CREATE), 변경(ALTER), 삭제(DROP)
  • TRUNCATE는 데이터를 삭제하지만 테이블 구조는 유지
  • DDL 명령어는 ROLLBACK이 불가능 (실행 즉시 적용됨)

✅ 4. DML과 DDL을 함께 사용하는 실전 예제

-- 1. 테이블 생성 (DDL)
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    Name VARCHAR(50),
    Age INT,
    Department VARCHAR(50)
);

-- 2. 데이터 삽입 (DML)
INSERT INTO Employees (EmployeeID, Name, Age, Department) 
VALUES (1, '이영희', 29, 'Marketing');

-- 3. 데이터 조회 (DML)
SELECT * FROM Employees;

-- 4. 테이블 구조 변경 (DDL)
ALTER TABLE Employees ADD Salary DECIMAL(10,2);

-- 5. 데이터 수정 (DML)
UPDATE Employees 
SET Salary = 5000.00 
WHERE EmployeeID = 1;

-- 6. 데이터 삭제 (DML)
DELETE FROM Employees WHERE EmployeeID = 1;

-- 7. 테이블 삭제 (DDL)
DROP TABLE Employees;

 

📌 이 예제에서...

  • CREATE TABLE, ALTER TABLE, DROP TABLE은 DDL
  • INSERT, UPDATE, DELETE, SELECT는 DML

✅ 5. DML과 DDL의 관련 키워드

  • DML과 DDL 차이점
  • SQL DML 예제
  • SQL DDL 예제
  • DML과 DDL 비교
  • SQL 데이터 조작 언어
  • SQL 데이터 정의 언어
  • DML과 DDL을 함께 사용하는 방법
  • SQL 기본 문법
  • DDL과 DML의 차이점

📌 이 글을 검색하는 사람들은?
SQL을 처음 배우는 개발자
DBA(데이터베이스 관리자)
SQL 인터뷰 질문을 준비하는 사람
MySQL, PostgreSQL, MSSQL, Oracle 등의 DBMS 사용자


🚀 결론

DML은 데이터 조작 (INSERT, UPDATE, DELETE, SELECT)을 담당
DDL은 데이터 정의 (CREATE, ALTER, DROP, TRUNCATE)을 담당
DML은 트랜잭션 지원 (ROLLBACK, COMMIT 가능)
DDL은 실행 즉시 적용되며 ROLLBACK이 불가능
SQL을 효율적으로 사용하려면 DML과 DDL의 차이를 이해하는 것이 필수

📌 DML과 DDL의 차이를 확실히 이해했다면, 실전에서 활용해 보세요!

반응형