SQL에는 데이터를 조회하고 테이블을 만드는 등 다양한 문법이 있다. 그리고 쿼리문을 어떻게 작성하느냐에 따라, 그 기능이나 작업이 달라진다. 영어나 한국어 등과 같은 언어에서 주어나 동사 등을 구분하는 것처럼 SQL에서도 역할에 따라 문법이 다양하게 존재한다.
일반적으로 SQL 문법을 다음과 같이 분류한다.
DDL(Data Definition Language)
은 데이터를 정의할 때 사용하는 언어다. 테이블을 만들 때 사용하는 CREATE
이나 테이블을 제거할 때 사용되는 DROP
등이 DDL
에 해당한다. 데이터베이스의 테이블과 같은 오브젝트를 정의할 때 사용한다.
DML(Data Manipulation Language)
은 데이터베이스에 데이터를 저장할 때 사용하는 언어다. INSERT
처럼 새로운 레코드를 추가할 때 사용되는 문법을 포함해 데이터를 삭제하는 DELETE
나, 변경하는 UPDATE
가 DML
에 포함된다.
DCL(Data Control Language)
은 데이터베이스에 대한 접근 권한과 관련된 문법이다. 어느 유저가 데이터베이스에 접근할 수 있는지 권한을 설정한다. 권한을 주는 GRANT
나, 권한을 가져가는 REVOKE
등이 DCL
에 포함된다.
DQL(Data Query Language)
은 정해진 스키마 내에서 쿼리할 수 있는 언어다. SELECT
가 DQL
에 해당한다. DQL
을 DML
의 일부분으로 취급하기도 한다.
TCL(Transaction Control Language)
은 DML 과정을 거친 데이터의 변경사항을 수정할 수 있다. COMMIT
처럼 DML
이 작업한 내용을 데이터베이스에 커밋하거나, ROLLBACK
처럼 커밋했던 내용을 다시 롤백하는 문법이 있다.