DML 개념? 4가지 데이터 조작어와 명령어

DML 개념에 대한 설명
DML 개념에 대한 설명

DML 개념에 대해서 이야기해봅시다.




DML 개념에 대해 알기

DML 개념(Data Manipulation Language)데이터베이스 관리 시스템(DBMS, DataBase Management System)에서 사용자가 데이터를 입력하고 입력한 데이터를 조회, 수정, 삭제의 처리를 하기 위해서 사용하는 데이터 언어를 의미합니다.

DML(Data Manipulation Language)은 “데이터 조작어“라고 부릅니다.

데이터 조작어(DML)는 데이터 정의어(DDL, Data Definition Language)를 사용하여 스키마를 정의하면 스키마에 따라 조직에 필요한 실제 데이터 값들이 저장되게 되는데 사용자가 실제 데이터를 활용하기 위해서 사용하는 명령어들입니다.

DML은 SELECT(조회), INSERT(입력), UPDATE(수정), DELETE(삭제)로 구성됩니다.

데이터 조작어(DML)는 절차적 데이터 조작어(Procedural DML)와 비절차적 데이터 조작어(Non Procedural DML)로 구분됩니다.




DML 개념에 대한 설명

DML 개념(Data Manipulation Language)은 데이터를 입력하고 입력된 데이터를 수정, 삭제, 조회하는 명령어를 의미합니다.

DML(Data Manipulation Language)에는 SELECT(조회), INSERT(입력), UPDATE(수정), DELETE(삭제) 4가지 명령어로 구성되어 있습니다.

[DML의 4가지 구성 요소]

구분내용
1SELECT(조회)
2INSERT(입력)
3UPDATE(수정)
4DELETE(삭제)

INSERT(입력)은 테이블에 데이터를 입력하는 명령어 입니다.


[INSERT(입력) 구문 사용 예시]

INSERT INTO 테이블명 (컬럼1, 컬럼2, ...)
VALUES (데이터1, 데이터2, ...)

INSERT INTO 테이블명
VALUES (전체 컬럼에 입력될 데이터 리스트)

UPDATE(수정)는 이미 저장되어 잇는 데이터를 수정하고자 할 대 사용하는 명령어입니다.

데이터를 수정하고자 하는 컬럼이 많을 경우 SET절에 콤마로 이어서 명시할 수 있습니다. WHERE 절을 명시하지 않으면 테이블의 모든 로우(Row)가 변경됩니다.


[UPDATE(수정) 구문 사용 예시]

UPDATE 테이블명
SET 컬럼명 = 새로운 데이터 (WHERE 수정할 데이터에 대한 조건);

DELETE(삭제)는 이미 저장되어 있는 데이터를 삭제하고자 할 때 사용하는 명령어입니다. WHERE 절을 명시하지 않을 경우 테이블의 전체 데이터가 삭제됩니다.


[DELETE(삭제) 구문 사용 예시]

DELETE FROM 테이블명
WHERE 수정할 데이터에 대한 조건

만약 WHERE 절을 명시하지 않고 정말로 테이블 전체 데이터를 삭제하고자 할 때는 TRUNCATE 명령어를 사용하는 것도 하나의 방법입니다. 삭제하고자 하는 부분이 확실하다면 TRUNCATE 명령어가 시스템 부하 관점에서는 유리할 수 있습니다. TRUNCATE는 별도의 로그를 쌓지 않고 롤백(Rollback)이 가능합니다. DELETE의 경우 커밋(Commit) 하기 전에 롤백이 가능합니다.

DML(데이터 조작어)는 절차적 데이터 조작어(Procedural DML)와 비절차적 데이터 조작어(Non Procedural DML)로 2가지로 나눌 수 있습니다.

[DML의 종류]

구분내용
1절차적 데이터 조작어(Procedural DML)
2비절차적 데이터 조작어(Non Procedural DML)

절차적 데이터 조작어(Procedural DML)은 사용자가 어떤(What) 데이터를 원하고 사용자가 원하는 데이터를 얻기 위해서 어떻게(How) 처리해야 하는지 설명하는 개념입니다.

비절차적 데이터 조작어(Non Procedural DML)은 사용자가 어떤(What) 데이터를 원하는지 만을 설명하는 개념입니다. 비절차적 데이터 조작어는 데이터를 어떻게 처리할지에 대해서는 DBMS에 맡기게 됩니다.

추가적으로 MERGE 명령어는 테이블에 새로운 데이터를 입력하거나 이미 저장되어 있는 데이터에 대한 변경 작업을 한꺼번에 할 수 있도록 해주는 명령어입니다.


[MERGE 명령어 사용 예시]

MERGE
INTO 대상 테이블
USING 비교 테이블
ON 조건
WHEN MATCHED THEN
UPDATE
SET 컬럼명 = 새로운 데이터, [컬럼명 = 새로운 데이터 ...]
WHEN NOT MATCHED THEN
INSERT [(컬럼명1, 컬럼명2, ...)]
VALUES (데이터1, 데이터2, ...)