본문 바로가기

Programming Language/SQL

DDL, DML, DCL 설명, 종류

  DDL (Data Definition Language) DML (Data Manipulation Language) DCL (Data Control Language)
설명 - 데이터 정의 언어 

- 데이터베이스의 구조(행, 속성, 릴레이션, 인덱스 파일 위치 등)를 정의 하기 위한 데이터베이스 언어 혹은 데이터베이스 언어 요소 
- 데이터 조작 언어 

- 데이터베이스에 대해 검색, 등록, 삭제, 갱신을 위한 데이터베이스 언어 혹은 데이터베이스 언어 요소

- DML은 문장의 첫 단어로 표시하는 기능을 가짐

- 데이터 제어 언어 

- 데이터베이스에서 데이터에 대한 액세스를 제어하기 위한 데이터베이스 언어 또는 데이터베이스 언어 요소 

- 권한(연결, 질의, 자료 삽입, 갱신, 삭제)부여, 박탈 
종류 CREATE
ALTER
DROP
TRUNCATE
SELECT
INSERT
UPDATE
MERGE INTO
DELETE
GROUP BY
HAVING
ORDER BY 
GRANT
REVOKE

TCL은 DCL에 포함된다. 
TCL의 종류 : COMMIT, ROLLBACK 

 

추가설명 

 

DDL은 데이터베이스에 뭔가를 만드는 것이다. 반면에 DML은 이미 있는 것에 대해 명령하는 것이므로, DB에 바로 적용하지 않는다. 

 

그래서 DDL의 경우 명령을 내리고 실행하는 순간 COMMIT이 된다. 

 

반면, DML 실행 결과는 이를 포함하는 transaction을 COMMIT할 때까지 영구적이지 않다. 

DML문이 COMMIT이 완료되기 전까지는 ROLLBACK(undone)이 가능하다는 것이다.  

 

* transaction(트랜젝션) : 데이터베이스 상호작용의 단위. 즉, 데이터베이스 수행 작업의 단위. 트랜젝션은 사용자가 정하는 것으로, 항상 특정한 개수의 문장을 의미하지 않는다. 하나의 DML문도 트랜젝션이 될 수 있다.  

 

< 참고 >

- 위키백과

- https://docs.oracle.com/cd/E11882_01/appdev.112/e10766/tdddg_dml.htm#TDDDG23000

- https://www.techopedia.com/