테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 (생성, 변경, 삭제, 이름변경) 데이터 구조와 관련된 명령어들을 말한다. DDL의 모든 명령어는 자동으로 커밋되어 모든 변경 사항을 영구적으로 저장한다.
DML은 데이터를 수정하는 데 사용된다. 데이터의 모든 형태의 변경을 담당한다.
DML의 명령은 자동 커밋되지 않으므로 데이터의 모든 변경 사항을 영구적으로 저장할 수 없다. 영구 저장을 위해 COMMIT
을 해서 TRANSACTION
을 종료해야한다. COMMIT
전에 ROLLBACK
될 수 있다.
DCL은 데이터베이스 사용자로부터 권한을 부여하고 회수하는 데 사용한다. DCL도 자동 커밋된다.
TCL은 트랜잭션을 제어하는 명령어들로 DML( INSERT
, DELETE
, UPDATE
)에서만 사용할 수 있다(DDL, DCL은 자동 커밋되기 때문). 트랜잭션 작업 결과를 저장 및 종료하거나(COMMIT
), 마지막 커밋 시점으로 복원(ROLLBACK
)하는 등의 작업을 한다.
Select를 DQL(Data Query Language)로 빼는 경우도 있다. 데이터 조작의 범위를 실제 데이터를 변경하는 것만 데이터 조작이냐, 검색도 데이터 조작으로 볼 것이냐의 차이로 보인다.
https://brownbears.tistory.com/180
https://www.javatpoint.com/dbms-sql-command
https://ittutorial.org/oracle-sql-tutorials-chapter-1-1/
https://iamfreeman.tistory.com/entry/DBMS-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%96%B8%EC%96%B4-DDL-DML-DCL-TCL-%EC%9D%98-%EC%A0%95%EC%9D%98