😀이번에 SQL에 대해서 강의를 듣고 포스팅을 정리하면서 이것저것 찾아보다보니, SQL의 모든 문법이 다 그냥 SQL이라고 부르는게 아니라 각 기능에 따라서 DDL, DML, DCL, TCL 등으로 구분되어져 불린다는 것을 알게 되어 이번에 포스팅으로 정리해보고자 한다.
SQL(Structured Query Language)은 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 조회하고 조작하는 데 사용하는 언어이다.
이러한 SQL은 문법의 범주에 따라서 DDL, DML, DCL, TCL 등으로 구성되는데 각 구성요소에 대해서 알아보자.
DDL은 데이터를 정의하는 언어로 데이터베이스의 구조 또는 스키마를 정의하거나 변경할 때 사용한다. 주로 테이블의 생성, 수정, 삭제 등을 처리하는 명령어들이 포함되어 있다.
명령어 | 내용 |
---|---|
CREATE | 데이터베이스의 객체를 생성 |
ALTER | 데이터베이스의 구조를 변경 |
DROP | 데이터베이스의 객체를 삭제 (테이블의 모든 데이터와 구조를 삭제) |
RENAME | 데이터베이스의 객체 이름을 변경 |
COMMENT | 데이터에 주석등을 추가 |
TRUNCATE | 테이블에 할당된 모든 공간을 포함하여 모든 레코드를 제거. (테이블 객체의 저장공간 재사용 가능) |
DML은 데이터를 조작하는 언어로, 데이터를 저장, 변경, 삭제, 조회할 때 사용하는 명령어들을 포함하고 있다.
명령어 | 내용 |
---|---|
SELECT | 테이블의 데이터를 조회 |
INSERT | 테이블에 데이터를 삽입 (추가) |
UPDATE | 테이블의 기존 데이터를 수정 |
DELETE | 테이블에서 데이터를 삭제 |
우리가 가장 기본적으로 사용하는 SQL의 문법이 대부분 DML에 속한다. DML은 위의 기본적인 SELECT, INSERT 등 뿐만 아니라 MARGE, CALL, EXPLAIN PLAN, LOCK TABLE, UPSERTE, REPLACE 등 여러가지가 존재한다.
DCL은 데이터 제어 언어로, 데이터베이스 사용자에게 권한을 부여하거나 취소하는 기능을 담당하는 명령어들이 포함되어 있다.
명령어 | 내용 |
---|---|
GRANT | 사용자에게 권한을 부여하는 명령어 |
REVOKE | 사용자의 권한을 취소하는 명령어 |
TCL은 트랜잭션 제어 언어로, 트랜잭션의 시작과 종료, 롤백, 복구 등을 관리하는 명령어들을 가지고 있다.
명령어 | 내용 |
---|---|
COMMIT | 트랜잭션을 확정하고, 작업 중 모든 변경 내용을 데이터베이스에 적용하는 명령어 |
ROLLBACK | 현재 진행 중인 트랜잭션을 취소하고, 이전 작업을 되돌리는 명령어 |
SAVEPOINT | 트랜잭션의 특정 시점을 저장하고, 롤백할 때 해당 지점까지만 되돌리는 명령어 |
SET TRANSACTION | 트랜잭션에 대한 상태나 속성을 설정하는 명령어 |
참고자료(출처)
티스토리 버들도령 블로그 포스팅 DBMS 데이터 언어 - DDL, DML, DCL, TCL 의 정의
벨로그 alicesykim95 블로그 포스팅 DB 개요: DDL, DML, DCL, TCL이란?