상세 컨텐츠

본문 제목

[DB] DDL, DML, DCL의 개념과 예시

Information Technology/Computer Science

by Developer, Jiyong Kim 2024. 7. 4. 00:07

본문

SQL쯤이야..?

 

DDL, DML, DCL은 데이터베이스 관리 시스템(DBMS)에서 데이터를 정의, 조작, 제어하는 데 사용되는 SQL 명령어 그룹이다. SQLD를 공부하면서 익힌 내용이긴 한데, 단순 암기로만 외워서 머리에 확실히 들어오지 않아 예시와 함께 제대로 이해하고자 포스팅 한다.

 

1. DDL (Data Definition Language) - 데이터 정의어
: 데이터 전체의 골격을 결정하는 역할이다. 데이터베이스의 구조를 정의하거나 변경한다. 예를 들어 테이블을 생성하거나 변경, 삭제하는 작업이 포함된다.

주요 명령어:
create: 새로운 데이터베이스, 테이블, 인덱스 생성
alter : 테이블, 인덱스 수정
drop : 데이터베이스, 테이블, 인덱스  삭제
truncate : 테이블 초기화


DDL 사용 예시:

-- 테이블 생성
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    BirthDate DATE
);

-- 테이블에 열 추가
ALTER TABLE Employees ADD Email VARCHAR(100);

-- 테이블 삭제
DROP TABLE Employees;


2. DML (Data Manipulation Language) - 데이터 조작어
: 데이터베이스 내의 데이터(레코드)를 조회, 삽입, 수정, 삭제하는 데 사용된다.

주요 명령어:
select : 데이터 조회
insert : 데이터 삽입
update : 데이터 수정
delete : 데이터 삭제


DML 사용 예시:

-- 데이터 삽입
INSERT INTO Employees (EmployeeID, FirstName, LastName, BirthDate) 
VALUES (1, 'Jeff', 'Kim', '1995-08-21');

-- 데이터 조회
SELECT * FROM Employees WHERE EmployeeID = 1;

-- 데이터 수정
UPDATE Employees 
SET Email = 'aop8021@gmail.com' 
WHERE EmployeeID = 1;

-- 데이터 삭제
DELETE FROM Employees WHERE EmployeeID = 1;


3. DCL (Data Control Language) - 데이터 제어어
: 데이터베이스에 대한 접근 권한을 제어하는 데 사용된다.

주요 명령어:

grant : 사용자에게 특정 작업에 대한 수행 권한을 부여

revoke : 사용자에게 특정 작업에 대한 수행 권한을 취소
commit : 트랜잭션의 작업을 저장
rollback : 트랜잭션의 작업을 취소, 원래대로 복구


DCL 사용 예시:

-- 사용자에게 테이블에 대한 SELECT 권한 부여
GRANT SELECT ON Employees TO user1;

-- 사용자로부터 테이블에 대한 SELECT 권한 취소
REVOKE SELECT ON Employees FROM user1;


암기방법:
DDL: DB 자체를 움직이는 작업, 사용 빈도 적은 영단어들(create, alter, drop, truncate)
DML: DB 안에 자잘한 데이터 조작하는 작업, 사용 빈도 높은 영단어들(select, insert, drop, delete)
DCL: 권한이나 그런 뭔가 묵직묵직한 것들(grant, revoke, commit, rollback)

 

암기방법은 내맘대로....ㅎ

관련글 더보기