본문 바로가기

DB

[DB] 데이터 언어 (DDL, DML, DCL, TCL) 정의

📌 DDL (Data Definition Language)

  • 데이터 정의어로 database를 정의하는 언어이며, 데이터를 생성, 수정, 삭제하는 등의 데이터의 전체의 골격을 결정하는 역할을 하는 언어이다. 즉, database, table 등을 생성하거나 삭제하는 역할을 한다.
  • 종류
    • CREATE : 테이블 등을 생성하는 역할
    • ALTER : 테이블을 수정하는 역할
    • DROP : 테이블을 삭제하는 역할
    • TRUNCATE : 테이블을 초기화시키는 역할

📌 DML (Data Manipulation Language)

  • 데이터 조작으로 데이터를 관리하는 데 사용된다.
  • 정의된 database에 입력된 레코드(column)를 조회하거나 수정, 삭제 등의 역할을 하는 언어를 말한다.
  • 저장된 데이터를 실질적으로 처리하는 데 사용하는 언어입니다.
  • DML 명령은 자동으로 commit 되지 않는다.
  • DML명령에 의한 변경은 database에 영구적이지 않으므로 롤백할 수 있다.
  • 종류
    • SELECT : 데이터를 조회하는 역할
    • INSERT : 데이터를 삽입하는 역할
    • UPDATE : 데이터를 수정하는 역할
    • DELETE : 데이터를 삭제하는 역할

📌 DCL (Data Control Language)

  • 데이터 제어하는 언어이다.
  • datebase에 대해 접근하거나 권한, 데이터의 보안 등의 정의하는 데 사용한다.
  • database에 접근하여 읽거나 쓰는 것을 제한할 수 있는 권한을 부여하거나 박탈할 수 있고 트랜잭션을 명시하거나 조작할 수 있다.
  • 종류
    • GRANT : 특정 database 사용자에게 특정 작업에 대한 수행권한을 부여
    • REVOKE : 특정 database 사용자에게 특정 작업에 대한 수행권한을 박탈 및 회수

📌 TCL (Transaction Control Language)

  • 트랜잭션 제어 언어
  • DCL과 비슷하지만 데이터를 제어하는 언어가 아닌 트랜잭션을 제어할 때 사용한다.
  • 논리적인 작업 단위를 묶어서 DML에 의해 조작된 결과를 트랜잭션 별로 제어한다.
  • 종류
    • COMMIT : 모든 작업을 정상적으로 처리하겠다는 역할
    • ROLLBACK : 모든 작업을 되돌려 놓는 역할
    • SAVEPOINT : Commit 전에 특정 시점까지만 반영하거나 RollBack 시키는 역할
👉 트랜잭션 (Transaction)이란?
- database의 상태를 변화시키기 위해 수행하는 작업의 단위를 말한다.
- MySQL의 입력하는 모든 명령어들은 각각 하나의 트랜잭션이라고 할 수 있다.

'DB' 카테고리의 다른 글

[DataBase] Transaction 알아보기  (0) 2023.05.26