반응형
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)
반응형
'개발 > SQL' 카테고리의 다른 글
HAVING과 WHERE 차이: 그룹 함수와 함께 쓰이는 HAVING의 활용 (0) | 2025.03.15 |
---|---|
WHERE 절 & 조건문 활용: BETWEEN, IN, LIKE, IS NULL 등 (0) | 2025.03.07 |
SQL 개요: 관계형 데이터베이스와 SQL의 기본 개념 (0) | 2025.03.05 |
실전 프로젝트 & 문제 풀이: SQL 실력을 키우는 최고의 방법! 🧪 (0) | 2025.03.04 |
📊 5. 성능 최적화 & 트러블슈팅 (빠른 쿼리 = 좋은 개발자) (0) | 2025.03.03 |