SQL(Structured Query Language) : 데이터베이스 언어로, 주로 관계형 데이터베이스에서 사용
DDL은 데이터를 정의할 때 사용하는 언어다. 테이블을 만들 때 사용하는 CREATE 이나 테이블을 제거할 때 사용되는 DROP 등이 DDL에 해당한다. 데이터베이스의 테이블과 같은 오브젝트를 정의할 때 사용한다.
| 종류 | 역할 |
|---|---|
| CREATE | 데이터베이스, 테이블등을 생성 |
| ALTER | 테이블을 수정 |
| DROP | 데이터베이스, 테이블을 삭제 |
| TRUNCATE | 테이블을 초기화 |
DML은 데이터베이스에 데이터를 저장할 때 사용하는 언어다. INSERT 처럼 새로운 레코드를 추가할 때 사용되는 문법을 포함해 데이터를 삭제하는 DELETE 나, 변경하는 UPDATE 가 DML에 포함된다.
| 종류 | 역할 |
|---|---|
| SELECT | 데이터를 조회 |
| INSERT | 데이터를 삽입 |
| UPDATE | 데이터를 수정 |
| DELETE | 데이터를 삭제 |
DCL은 데이터베이스에 대한 접근 권한과 관련된 문법이다. 어느 유저가 데이터베이스에 접근할 수 있는지 권한을 설정한다. 권한을 주는 GRANT 나, 권한을 가져가는 REVOKE 등이 DCL에 포함된다.
| 종류 | 역할 |
|---|---|
| GRANT | 특정 데이터베이스 사용자에게 특정 작업에 대한 수행권한 부여 |
| REVOKE | 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 박탈, 회수 |
DQL은 정해진 스키마 내에서 쿼리할 수 있는 언어다. SELECT 가 DQL에 해당한다. 이렇게 언어를 분류했지만, DQL을 DML의 일부분으로 취급하기도 한다.
TCL은 DML을 거친 데이터의 변경사항을 수정할 수 있다. COMMIT 처럼 DML이 작업한 내용을 데이터베이스에 커밋하거나, ROLLBACK 처럼 커밋했던 내용을 다시 롤백하는 문법이 있다.
| 종류 | 역할 |
|---|---|
| COMMIT | 트랜잭션의 작업 결과를 저장 반영 |
| ROLLBACK | 트랜잭션의 작업을 취소 및 원래대로 복구 |