2020. 1. 28. 00:35

[SQL] DCL, DML, DDL 약어 설명과 명령어

개요


SQL이란 Structured Query Language. 구조화 질의문의 약어로서 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수한 목적의 언어이다.

쉽게 말해서 관계형 데이터베이스에서 한정적으로 사용되는 프로그래밍 언어라고 할 수 있다.

SQL 문법에는 크게 세 가지 종류로 구분될 수 있는데, 바로 DDL, DML, DCL이 바로 그것이다. 면접 뿐만이 아니라 컴퓨터 활용능력, 정보처리 시험에서도 자주 등장하는 내용이므로 간략하게 정리하면 좋다.

흔히 DB에서 말하는 CRUD는 모두 이 명령어들을 통해서 처리되고 실행된다.

  • DDL(Data Definition Language) : 데이터 정의 언어로 풀어 말할 수 있으며 스키마를 정의 하거나 조작하기 위해 사용한다.
  • DML(Data Manipulation Language) : 데이터 조작 언어로 풀어 말할 수 있으며 데이터를 조작(조회, 추가, 변경, 삭제)하기 위해서 사용한다. 사용자가 응용 프로그램과 데이터 베이스 사이에 실질적인 데이터 처리를 위해서 주로 사용된다.
  • DCL(Data Control Language) : 데이터 제어 언어로 풀어 말할 수 있으며 말그대로 데이터를 제어하는 언어이다. 데이터의 보안, 무결성, 회복, 병행 수행제어 등을 정의하는데 사용한다.

 

DDL


SCHEMA, DOMAIN, TABLE, VIEW, INDEX 를 다음 명령어로 생성, 변경, 삭제, 이름변경 등 데이터 구조와 관련된 명령어들을 말한다.

  1. CREATE : 새로운 데이터베이스를 생성한다.
  2. ALTER: 이미 존재하는 데이터베이스에 대해 변경함
  3. DROP : 이미 존재하는 데이터베이스를 삭제한다.
  4. TRUNCATE : 테이블에서 데이터를 DROP 후 CREATE한다.(초기화 역할)
  • SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용한다.
  • Oracle 11g 이전 버전과 MySQL은 DDL에 대해서 트랜잭션을 지원하지 않는다.

(Rollback 할 수 없고 Commit할 필요도 없다.)

DML


DML (Data Manipulation Language)는 데이터를 조작 (조회, 추가, 변경, 삭제) 하기 위해 사용한다.

사용자가 응용 프로그램과 데이터 베이스 사이에 실질적인 데이터 처리를 위해서 주로 사용한다.

  1. INSERT : 테이블에 들어있는 데이터를 추가한다.
  2. SELECT : 테이블에 들어있는 데이터를 선택한다.
  3. DELETE : 테이블에 들어있는 데이터를 삭제한다.
  4. UPDATE : 테이블에 들어있는 데이터를 변경한다.
  • 기본적인 위의 명령어 외에 LOCK, EXPLAIN, CALL 등도 DML에 포함 된다.
  • 데이터베이스 사용자가 응용 프로그램이나 쿼리문을 통해 저장된 데이터를 실질적으로 처리하는데 사용하는 명령어다.

 

DQL


일부에서는 DML에서 SELECT 만을 따로 분리해서 DQL (Data Query Language) 나 간단히 쿼리로 표현하기도 한다.

 

DCL


DCL(Data Control Language)는 데이터 베이스에 대한 접근 권한 부여 등의 데이터베이스 시스템의 관리를 위한 목적으로 사용되는 언어.

  1. COMMIT : 트랜잭션의 작업 결과를 반영
  2. ROLLBACK : 트랜잭션의 작업을 취소 및 원래대로 복구
  3. GRANT : 사용자에게 권한 부여
  4. REVOKE : 사용자 권한 취소

 

TCL


일부 위의 DCL에서 트랜잭션을 제어하는 명령인 COMMIT 과 ROLLBACK 만을 따로 분리해서 TCL (Transaction Control Language) 라고 표현하기도 한다.