본문 바로가기
Oracle/정리

[Oracle] DML, DDL, TCL 이란?

by 콧등치기국수 2021. 6. 17.
DML (데이터 조작어)

사원정보 데이터베이스에서 A사원의 연봉협상에 성공하여 연봉이 바뀌었다면 데이터베이스 내용도 바꿔줘야 할 것이다.

원하는 정보를 조회하고 수정할 때 사용하는 것이 DML이므로 테이블의 구조가 아닌 테이블안에 있는 데이터를 변경한다.

DML 명령에 의한 변경은 데이터베이스에 영구적이지 않으므로 롤백할 수 있다.

명령어 종류 명령어 설명    
DML(데이터조작어) SELECT 데이터베이스에 들어있는 데이터를 조회하거나 검색하기 위한 명령어.
DQL(데이터질의어)로 볼 수도 있다. 
INSERT 데이터의 내용을 추가한다.(즉 행을 추가한다.)
UPDATE 테이블 내의 기존 데이터 수정
DELETE 테이블에서 데이터를 삭제(행만 삭제, 전체 삭제도 가능)

 

 

DDL (데이터 정의어)

만약 내가 사원정보(이름, 사원번호, 핸드폰번호, 부서 등등)을 저장하고 싶을때는 이에 맞는 저장공간이 필요한데 이러한 저장공간을 설정하는 명령어이다.

위와 같은 이유로 생성된 표를 데이터베이스에서는 테이블이라고 한다.

즉 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어이다.

 

데이터베이스 구조 또는 스키마를 정의하는데 사용, 직접 데이터베이스의 테이블에 영향을 미치기 때문에 DDL명령어를 입력하는 순간, 명령어에 해당하는 작업이 즉시(AUTO COMMIT) 완료된다!

명령어 종류 명령어 설명    
DDL CREATE 테이블 생성 (데이터베이스의 객체를 생성)
ALTER 테이블 구조 변경 (데이터베이스의 구조를 변경)
DROP 테이블의 모든 데이터와 구조를 삭제
TRUNCATE 테이블에 할당된 모든 공간을 포함하여 모든 레코드를 제거 (테이블 객체의 저장공간 재사용 가능)
RENAME 이름변경

 

즉 DDL로 데이터를 저장하기 위한 저장구조를 만들고, DML로 데이터베이스에 접근해서 데이터를 저장하고, 변형하고, 확인할 수 있다!

 

 

 

TCL(트랜잭션 제어어)

데이터의 보안, 무결성, 회복, 병행 수행제어 등을 정의하는데 사용

명령어 종류 명령어 설명    
TCL COMMIT 트랜잭션의 작업결과를 저장 반영 (변경된 내용을 영구히 저장)
ROLLBACK 데이터베이스를 마지막 COMMIT된 시점의 상태로 복원
데이터에 대한 변경내용은 논리적인 트랜잭션을 그룹화될 수 있다.
SAVEPOINT 저장점을 정의하면 롤백할 때 트랜잭션에 포함된 전체작업을 롤백하는 것이 아니라 현 시점에서 SAVEPOINT까지 트랜잭션의 일부만 롤백가능. 

 

INSERT -> COMMIT -> UPDATE -> SAVEPOINT -> DELETE -> ROLLBACK

 

1) COMMIT : 마지막 COMMIT후로 돌아감

2) ROLLBACK SavePoint1 : ROLLBACK SavePoint1상태로 돌아감

 

 

 

 

* 참고 및 출처

1. https://brownbears.tistory.com/180

2. 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

 

 

 

 

 

'Oracle > 정리' 카테고리의 다른 글

[Oracle] 단일행함수  (0) 2021.06.23
[Oracle] SELECT문  (0) 2021.06.19
[Oracle] cmd에서 sqlplus사용 / sql devleper와 비교  (0) 2021.06.17