[DB] DDL, DML, DCL, TCL을 알아보자
<DDL, DML, DCL, TCL>
안녕하세요. 개발자 김모씨입니다.
Database 쪽도 글을 적어보려 합니다.
첫번째로,
오늘은
SQL(Structured Query Language)에서 흔히 사용되는
DDL, DML, DCL에 대해서 알아봅시다.
DDL : Data Definition Language - 데이터 정의어
DDL은 데이터베이스 스키마를 정의하거나 조작하기 위한 언어입니다.
생성, 수정, 삭제 등의 데이터 전체 골격을 결정하는 역할을 담당합니다.
DDL의 대상은 SCHEMA, DOMAIN, TABLE, VIEW, INDEX 등이 있습니다.
단, DDL은 명령어를 입력하는 순간 작업이 즉시 완료(AUTO COMMIT)되기 때문에 주의하여야 합니다.
종류 | 역할 |
CREATE | 대상 객체를 생성합니다. |
ALTER | 대상 객체의 구조를 변경합니다. (수정) |
DROP | 대상 객체와 객체 내부 데이터를 삭제합니다. |
RENAME | 대상 객체 이름을 변경합니다. |
COMMENT | 데이터에 주석 등을 추가합니다. |
TRUNCATE | 공간을 포함한 모든 레코드를 삭제합니다. (테이블 초기화 등) |
DML : Data Manipulation Language - 데이터 조작어
DML은 데이터베이스 내부 데이터를 관리하기 위한 언어입니다.
데이터를 조회, 추가, 변경, 삭제 등의 작업을 수행하기 위해 사용됩니다.
DML은 DDL과 달리, AUTO COMMIT 되지 않습니다.
다시 말해, DML에 의한 데이터 변동은 영구적인 변경이 아니므로, ROLLBACK 처리가 가능합니다.
(DDL은 ROLLBACK이 불가능합니다.)
또한, DML은 TARGET 테이블을 메모리 버퍼 위에 올려두고 변경을 수행하기 때문에,
실시간성으로 테이블에 반영되지 않습니다.
COMMIT 명령어를 통해 TRANSACTION을 종료해야 해당 변경 사항이 테이블에 반영됩니다.
종류 | 역할 |
SELECT | 데이터베이스에서 데이터를 검색합니다. |
INSERT | 테이블에 데이터를 추가합니다. |
UPDATE | 테이블 내에 존재하는 데이터를 수정합니다. |
DELETE | 테이블에서 데이터를 삭제합니다. |
MERGE | |
CALL | |
EXPLAIN PLAN | |
LOCK TABLE |
* 테이블 내부 데이터 전체를 삭제하는 경우, DELETE TABLE보다 TRUNCATE TABLE이 더 추천됩니다.
이는 DELETE TABLE은 삭제된 데이터를 로그로 저장하므로,
그렇지 않는 TRUNCATE TABLE에 비해 시스템 부하가 더 발생하기 때문입니다.
* 작성 중입니다~~~~~~~~