CS
[CS/DB] DDL이란? DML이란? DDL과 DML의 차이
hhongyeahh
2024. 9. 21. 22:43
DML(Data Manipulation Language)과 DDL(Data Definition Language)은
데이터베이스에서 각각 데이터를 다루는 언어와 데이터 구조를 정의하는 언어를 의미합니다.
이 두 가지는 SQL의 주요 구성 요소 중 일부로, 데이터베이스를 효과적으로 관리하고 조작하는 데 사용됩니다.
DDL (Data Definition Language)
DDL은 데이터베이스의 구조를 정의하고 변경하는 데 사용되는 명령어들의 집합입니다. 테이블이나 뷰와 같은 데이터베이스 객체의 생성, 수정, 삭제를 담당합니다. DDL 명령어는 데이터베이스의 스키마를 정의하며, 보통 CREATE, ALTER, DROP 등이 있습니다.
주요 DDL 명령어 및 예시
CREATE: 테이블, 인덱스, 뷰 등을 생성합니다.
- 이 예시에서는 students라는 테이블을 생성하고, student_id는 기본 키로 지정되어 있습니다.
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(100),
age INT,
major VARCHAR(50)
);
ALTER: 기존 테이블이나 데이터베이스 객체를 수정합니다.
- 이 명령어는 students 테이블에 email이라는 컬럼을 추가합니다.
ALTER TABLE students
ADD email VARCHAR(100);
DROP: 테이블이나 뷰 등을 삭제합니다.
- 이 명령어는 students 테이블을 삭제합니다. 삭제된 테이블의 데이터는 복구할 수 없습니다.
DROP TABLE students;
TRUNCATE: 테이블의 모든 데이터를 삭제하지만, 테이블 구조는 유지합니다.
- 이 명령어는 students 테이블의 모든 데이터를 삭제하지만 테이블 자체는 유지됩니다.
TRUNCATE TABLE students;
DML (Data Manipulation Language)
DML은 데이터베이스 내의 데이터를 삽입, 수정, 삭제, 조회하는 명령어입니다. 주로 데이터를 조작하는 데 사용되며, 대표적인 명령어로 SELECT, INSERT, UPDATE, DELETE가 있습니다.
주요 DML 명령어 및 예시
SELECT: 데이터베이스에서 데이터를 조회합니다.
- 이 명령어는 students 테이블에서 전공이 "Computer Science"인 학생들의 이름과 나이를 조회합니다.
SELECT name, age FROM students WHERE major = 'Computer Science';
INSERT: 테이블에 새로운 데이터를 삽입합니다.
- 이 예시는 students 테이블에 새로운 학생 데이터를 삽입하는 명령어입니다.
INSERT INTO students (student_id, name, age, major)
VALUES (1, 'John Doe', 22, 'Computer Science');
UPDATE: 기존 데이터를 수정합니다.
- 이 명령어는 student_id가 1인 학생의 나이를 23으로 수정합니다.
UPDATE students
SET age = 23
WHERE student_id = 1;
DELETE: 데이터를 삭제합니다.
- 이 명령어는 student_id가 1인 학생의 데이터를 삭제합니다.
DELETE FROM students WHERE student_id = 1;
DDL과 DML의 차이점
- DDL: 데이터베이스의 구조를 정의하고, 테이블과 같은 객체를 생성, 수정, 삭제하는 명령어입니다. 실행 후 자동으로 커밋(commit)되어 데이터베이스에 영구적인 영향을 미칩니다.
- DML: 데이터베이스 내 데이터를 조작하는 명령어로, 데이터의 삽입, 수정, 삭제, 조회와 관련됩니다. 트랜잭션 제어가 가능하며, 커밋을 통해 변경사항을 확정할 수 있습니다.