728x90
목차
1. DDL (Data Definition Language)
정의
DDL은 데이터베이스의 구조(스키마)를 정의하거나 수정하는 데 사용됩니다.
주로 테이블, 뷰, 인덱스, 데이터베이스 생성 및 변경 작업에 사용됩니다.
특징
- 데이터베이스의 구조와 관련된 작업을 수행합니다.
- 명령어 실행 시 자동으로 커밋(commit)이 이루어집니다.
- 복구를 위해 롤백(rollback)할 수 없습니다.
주요 명령어
- CREATE: 데이터베이스, 테이블, 뷰 등을 생성합니다.
- ALTER: 테이블 구조를 수정합니다.
- DROP: 데이터베이스, 테이블 등을 삭제합니다.
- TRUNCATE: 테이블의 데이터를 초기화합니다.
예시
-- CREATE: 테이블 생성
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(50),
Age INT
);
-- ALTER: 테이블에 컬럼 추가
ALTER TABLE Students ADD Email VARCHAR(100);
-- DROP: 테이블 삭제
DROP TABLE Students;
-- TRUNCATE: 테이블 데이터 초기화 (구조는 유지)
TRUNCATE TABLE Students;
2. DML (Data Manipulation Language)
정의
DML은 데이터베이스 내의 데이터를 삽입, 조회, 수정, 삭제하는 데 사용됩니다.
사용자가 테이블에 저장된 데이터를 직접 다루는 명령어입니다.
특징
- 트랜잭션 관리가 가능합니다.
(명령어 실행 후 커밋(commit) 또는 롤백(rollback)을 통해 변경 사항을 적용하거나 취소할 수 있음)
주요 명령어
- SELECT: 테이블에서 데이터를 조회합니다.
- INSERT: 데이터를 삽입합니다.
- UPDATE: 데이터를 수정합니다.
- DELETE: 데이터를 삭제합니다.
예시
-- INSERT: 데이터 삽입
INSERT INTO Students (StudentID, Name, Age, Email)
VALUES (1, 'Alice', 20, 'alice@example.com');
-- SELECT: 데이터 조회
SELECT * FROM Students;
-- UPDATE: 데이터 수정
UPDATE Students
SET Age = 21
WHERE StudentID = 1;
-- DELETE: 데이터 삭제
DELETE FROM Students
WHERE StudentID = 1;
3. DCL (Data Control Language)
정의
DCL은 데이터베이스의 권한과 보안을 관리하기 위해 사용됩니다.
주로 사용 권한을 부여하거나 회수하는 데 사용됩니다.
특징
- 데이터베이스 사용자와 관련된 작업을 처리합니다.
- 명령어 실행 시 **커밋(commit)**이 자동으로 발생합니다.
주요 명령어
- GRANT: 사용 권한을 부여합니다.
- REVOKE: 사용 권한을 회수합니다.
예시
-- GRANT: 사용 권한 부여
GRANT SELECT, INSERT ON Students TO User1;
-- REVOKE: 사용 권한 회수
REVOKE INSERT ON Students FROM User1;
DDL, DML, DCL 비교
구분 DDL DML DCL
풀네임 | Data Definition Language | Data Manipulation Language | Data Control Language |
역할 | 데이터베이스 구조 정의 및 변경 | 데이터 관리(조회, 삽입, 수정, 삭제) | 권한 및 보안 관리 |
명령어 | CREATE, ALTER, DROP, TRUNCATE | SELECT, INSERT, UPDATE, DELETE | GRANT, REVOKE |
트랜잭션 | 지원하지 않음 (자동 커밋) | 지원 (커밋/롤백 가능) | 지원하지 않음 (자동 커밋) |
추가로 알아두면 좋은 SQL 분류
- TCL (Transaction Control Language)
- 트랜잭션을 제어하는 명령어입니다.
- 주요 명령어: COMMIT, ROLLBACK, SAVEPOINT
BEGIN TRANSACTION; UPDATE Students SET Age = 22 WHERE StudentID = 1; ROLLBACK; -- 변경 사항 취소 COMMIT; -- 변경 사항 확정
- DQL (Data Query Language)
- 데이터를 조회하는 데 사용되는 명령어입니다.
- 사실상 DML의 일부로 간주되지만, SELECT 명령어를 DQL로 따로 분리하기도 합니다.
728x90
'SQL' 카테고리의 다른 글
아웃터 조인 (Outer Join) (0) | 2025.01.23 |
---|---|
SQL -AS 사용 가능한 곳 (0) | 2025.01.23 |
SQL의 SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY 쉽게 이해하기 (2) | 2025.01.23 |
슈퍼 키(Super Key)와 후보 키(Candidate Key)의 차이 (1) | 2025.01.21 |
SQL에서 사용하는 모든 키의 정의와 예시 (0) | 2025.01.21 |