[DB] SQL - DDL/DML/DCL/TCL

HodooHa·2024년 5월 7일

SQL(Structured Query Language)

  • RDBMS에서 데이터를 다루고 관리하는 데 사용하는 데이터베이스 질의 언어이다.
  • 사용 목적, 역할에 따라 DDL/DML/DCL/TCL로 나뉜다.

[DDL(Data Definition Language)]

  • 역할 : RDBMS 내 데이터 관리를 위해 테이블을 포함한 여러 객체를 생성, 수정, 삭제하는 명령어

CREATE : 데이터베이스, 테이블 생성

ALTER : 테이블 수정

DROP : 데이터베이스, 테이블 삭제 (rollback 불가능)

TRUNCATE : 테이블 삭제(초기화) (rollback 불가능)


[DML(Data Manipulation Language)]

  • 역할: RDBMS에 내 테이블의 데이터를 저장, 수정, 삭제하는 명령어

INSERT : 데이터 삽입

SELECT : 데이터 조회

UPDATE : 데이터 수정

DELETE : 데이터 삭제 (rollback 가능)


[DCL(Data Control Language)]

  • 역할: 데이터 사용 권한과 관련된 명령어

GRANT : 권한 부여

REVOKE : 권한 회수


[TCL(Transaction Control Language)]

  • 역할: 트랜잭션 데이터의 영구 저장, 취소 등과 관련된 명령어

COMMIT : 트랜잭션 내 변경사항 데이터베이스에 영구 반영

ROLLBACK : 트랜잭션 시작 지점까지 작업 취소


※세션(session)과 트랜잭션(transaction)

데이터베이스에서의 세션데이터베이스 접속 시작부터 접속이 종료되기까지의 전체 기간을 의미한다.
트랜잭션은 관계형 데이터베이스에서 하나의 작업 또는 밀접하게 연관되어 있는 작업 수행을 위해 나눌 수 없는 최소 수행 단위를 말한다.
하나의 세션은 여러 SQL문이 하나의 작업 단위로 다뤄지는 여러 개의 트랜잭션으로 구성된다.
트랜잭션 작업을 데이터베이스에 영구히 반영할 때 COMMIT 명령어를 사용하고 지금까지 한 작업을 취소할 때 ROLLBACK 명령어를 사용한다.
이 명령어를 통해 현재 트랜잭션이 종료될 때까지 다른 세션에서는 데이터 조작 전 상태의 데이터만 조회할 수 있는데 이러한 특성을 '읽기 일관성'이라고 한다.

[출처] Do it! 오라클로 배우는 데이터베이스 입문, 이지훈

본 포스팅은 멀티캠퍼스의 멀티잇 백엔드 개발(Java)의 교육을 수강하고 작성되었습니다.

profile
성장하는 개발자, 하지은입니다.

0개의 댓글