본문 바로가기
카테고리 없음

데이터 베이스 관리? - DML, DCL, TCL 명령어 기초부터 활용까지

by moment-love 2025. 1. 25.

 

데이터 베이스 관리? - DML, DCL, TCL 명령어 기초부터 활용까지

 

SQL(Structured Query Language)은 데이터베이스를 관리하고 데이터를 조작하기 위한 표준 언어입니다.

 

 

SQL은 기능에 따라
DDL(Data Definition Language), DML(Data Manipulation Language),
DCL(Data Control Language), TCL(Transaction Control Language)로 나뉘며,

이 중 DML, DCL, TCL은 데이터를 다루는 데 중요한 역할을 합니다.

 

 

 

이번 글에서는 DDL에 이어 DML, DCL, TCL 명령어의 기초와 활용 방법을

각각의 명령어 카테고리와 예제를 통해 실습 기반으로 알아보겠습니다.

 


 

1. DML(Data Manipulation Language): 데이터 조작어

 

DML은
데이터베이스 테이블의 데이터를 조회, 삽입, 수정, 삭제하는 명령어를 포함합니다.

DML은
데이터의 내용을 직접적으로 다루며, 데이터베이스의 데이터를 조작하는 데 사용됩니다.

 

 

DML의 주요 명령어

  1. SELECT: 데이터를 조회.

  2. INSERT: 데이터를 삽입.

  3. UPDATE: 데이터를 수정.

  4. DELETE: 데이터를 삭제.

1-1. SELECT: 데이터 조회

SELECT는 데이터베이스에서 원하는 데이터를 조회할 때 사용하는 명령어입니다.

 

예제: Users 테이블에서 데이터 조회

 

SELECT * FROM Users; -- 모든 열과 행 조회

SELECT UserName, Email FROM Users WHERE Age >= 18; -- 특정 열과 조건 조회

 


1-2. INSERT: 데이터 삽입

INSERT는 데이터베이스 테이블에 새로운 데이터를 추가합니다.

 

예제: Users 테이블에 데이터 삽입

 

INSERT INTO Users (UserID, UserName, Email, Age, Country) 
VALUES (1, '홍길동', 'hong@gmail.com', 25, 'Korea');

INSERT INTO Users (UserID, UserName, Age) 
VALUES (2, '김철수', 30); -- Country는 기본값 'Korea'로 삽입

 


 

1-3. UPDATE: 데이터 수정

UPDATE는 기존 테이블 데이터를 수정하는 명령어입니다.

 

예제: Users 테이블 데이터 수정
 
UPDATE Users 
SET Age = 35, Country = 'USA' 
WHERE UserID = 1; -- UserID가 1인 사용자의 나이와 국가 수정

 


 

1-4. DELETE: 데이터 삭제

DELETE는 테이블에서 특정 데이터를 삭제합니다.

 

예제: Users 테이블 데이터 삭제

 

DELETE FROM Users WHERE UserID = 2; -- UserID가 2인 사용자 삭제

 


2. DCL(Data Control Language): 데이터 제어어

 

DCL은 데이터베이스의 보안과 접근 권한을 관리하는 데 사용됩니다.
사용자가 데이터베이스에 접근하거나 특정 작업을 수행할 수 있도록 권한을 부여하거나 취소합니다.

 

 

DCL의 주요 명령어

  1. GRANT: 특정 사용자에게 권한을 부여.

  2. REVOKE: 특정 사용자에게 부여한 권한을 취소.


2-1. GRANT: 권한 부여

GRANT는 특정 사용자에게 데이터베이스에 대한 권한을 부여합니다.

 

예제: 사용자에게 SELECT 권한 부여

 

GRANT SELECT ON Users TO UserA; -- UserA에게 Users 테이블의 SELECT 권한 부여

 


2-2. REVOKE: 권한 취소

REVOKE는 특정 사용자에게 부여된 권한을 취소합니다.

 

예제: 사용자 권한 취소
 
REVOKE SELECT ON Users FROM UserA; -- UserA의 SELECT 권한 취소

 


3. TCL(Transaction Control Language): 트랜잭션 제어어

 

TCL은 데이터베이스에서 트랜잭션(Transaction)을 관리하고, 데이터의 무결성과 일관성을 보장합니다.
트랜잭션은 데이터베이스에서 실행되는 작업의 단위로, TCL 명령어는 트랜잭션의 실행 상태를 제어합니다.

 

TCL의 주요 명령어

  1. COMMIT: 트랜잭션의 결과를 저장.

  2. ROLLBACK: 트랜잭션을 취소하고 이전 상태로 복구.

  3. SAVEPOINT: 트랜잭션 내에 특정 지점을 저장.

  4. SET TRANSACTION: 트랜잭션의 속성을 설정.

 

3-1. COMMIT: 트랜잭션 확정

COMMIT은 트랜잭션에서 수행된 모든 변경 사항을 영구적으로 저장합니다.

 

예제: 데이터 삽입 후 COMMIT
INSERT INTO Users (UserID, UserName, Email, Age, Country) 
VALUES (3, '이영희', 'lee@gmail.com', 28, 'Korea');

COMMIT; -- 트랜잭션 확정

 


3-2. ROLLBACK: 트랜잭션 취소

ROLLBACK은 트랜잭션에서 수행된 모든 작업을 취소하고, 트랜잭션 시작 이전 상태로 복구합니다.

 

예제: 데이터 삽입 후 ROLLBACK

 

INSERT INTO Users (UserID, UserName, Email, Age, Country) 
VALUES (4, '박민수', 'park@gmail.com', 22, 'USA');

ROLLBACK; -- 트랜잭션 취소, 데이터 삽입 취소됨

 


3-3. SAVEPOINT: 트랜잭션 내 특정 지점 저장

SAVEPOINT는 트랜잭션 내에서 특정 지점을 저장하여, 해당 지점으로 부분적으로 ROLLBACK 할 수 있도록 합니다.

 

예제: SAVEPOINT 사용
SAVEPOINT Save1;

INSERT INTO Users (UserID, UserName, Age) 
VALUES (5, '최유리', 20); -- Save1 이후의 작업

ROLLBACK TO Save1; -- Save1 지점 이후의 작업 취소

 

 

3-4. SET TRANSACTION: 트랜잭션 속성 설정

SET TRANSACTION은 트랜잭션의 격리 수준(Isolation Level)을 설정합니다.

 

예제: 트랜잭션 격리 수준 설정
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

4. DML, DCL, TCL에서 중요한 개념

 

트랜잭션과 DML

  • DML 명령어는 COMMIT을 수행하기 전까지 변경 사항이 데이터베이스에 반영되지 않습니다.

  • 변경 사항을 저장하려면 COMMIT을, 취소하려면 ROLLBACK을 사용해야 합니다.

 

DCL과 보안

  • DCL 명령어는 사용자 권한을 관리하며, 데이터베이스의 보안을 유지하는 데 필수적입니다.

 

TCL과 무결성

  • TCL 명령어는 데이터의 일관성과 무결성을 보장하며, 특히 대규모 데이터 작업에서 중요한 역할을 합니다.

 


 

5. DML, DCL, TCL 간의 차이점

 

구분 DML DCL TCL
목적 데이터 조회, 삽입, 수정, 삭제 데이터 접근 권한 관리 트랜잭션 관리
주요 명령어 SELECT, INSERT, UPDATE, DELETE GRANT, REVOKE COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION
특징 트랜잭션 제어가 가능 데이터베이스 보안 유지 데이터 무결성과 일관성 보장

 

 


6. 결론 : 데이터를 조작하여 보안을 유지하고, 데이터의 무결성과 일관성 보장!

 

DML, DCL, TCL은 데이터베이스 관리에서 각각 중요한 역할을 수행합니다.

 

  • DML은 데이터를 직접적으로 조작하고,
  • DCL은 데이터 보안을 유지하며,
  • TCL은 데이터의 무결성과 일관성을 보장합니다.

 

이번 글에서 다룬 주요 명령어들을 활용하여 데이터베이스 작업을 실습해 보세요.

 

SQL의 모든 영역을 이해하면 효율적이고 안정적인 데이터베이스 관리를 할 수 있습니다!

반응형