DDL(Data Definition Language)
- 데이터베이스의 객체를 생성하고, 삭제, 변경할 수 있는 SQL 명령어
특징
- 데이터베이스 스키마를 컴퓨터가 이해할 수 있도록 기술하는데 사용
- 데이터베이스 관리자나 데이터베이스 설계자가 사용
- 데이터베이스의 메타 데이터(Data about Data)로 Data Dictionary에 저장
종류
CREATE
ALTER
DROP
TRUNCATE
RENAME
질문 내용
- TRUNCATE는 DDL이기 때문에 롤백이나 커밋이 존재하지 않는다.
- DELETE 쿼리를 실행시켜서 데이터를 삭제했을때는 롤백을 통해 모든 데이터를 복구할 수 있지만, TRUNCATE 명령어를 통해 삭제했을 경우는 복구할 방법이 없다!(백업이 없는 경우에)
- TRUNCATE는 속도가 매우 빠름.
- DELETE는 UNDO 영역에 데이터를 적재하면서 하나하나 삭제하기 때문에 시간이 매우 오래 걸리는데 비해, TRUNCATE는 롤백이 존재하지 않게 데이터를 영구히 삭제하기 때문에 0.5초 만에 데이터를 모두 삭제함.
- DDL은 보통 관리자가 쓰는 언어로서 테이블 자체를 건든다.
DML(Data Manipulation Language)
- 데이터베이스 내부 스키마에 데이터를 입력, 수정, 삭제하거나 조회하기 위한 언어 또는 명령어
특징
- 데이터베이스의 데이터 조작을 위한 필수 언어
- 질의 방법에 따라 성능의 차이가 발생
- 사용자가 직접 필요로 하는 답을 만드는 것이 아니라 데이터베이스의 처리 엔진(옵티마이저)이 답을 찾아 해결
종류
INSERT
- 테이블의 전체 컬럼 또는 일부 컬럼에 값을 입력할 때 사용
UPDATE
DELETE
- 테이블에 저장된 데이터(레코드)를 삭제할 때 사용
SELECT
DCL(Data Control Language)
- 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어
특징
- 데이터의 무결성 및 정확성을 확보하기 위한 기능
- 불법적인 사용자로부터 데이터를 보호하기 위한 기능
- 시스템 장애로부터 회복하거나 동시 접근을 위한 기능
종류
COMMIT
- 입력한 자료나 수정한 자료에 대해서 또는 삭제한 자료에 대해서 트랜잭션을 종료하고, 디스크에 최종 저장
ROLLBACK
- 트랜잭션을 취소하고, 데이터의 변경 이전 상태로 복구
GRANT
- 사용자에게 객체에 대한 특정 권한을 부여하는 명령어
REVOKE