1. DDL(Data Definition Language)
- 데이터의 구조를 정의하기 위한 테이블 생성, 삭제, 수정 등의 기능을 수행하는 명령어
- create : 테이블 생성
- drop : 테이블 삭제
- alter : 테이블 수정
- truncate : 테이블에 있는 모든 데이터 삭제
2. DML(Data Manipulation Language)
-
데이터 조회 및 변형을 위한 명령어
- select : 데이터 조회
- insert : 데이터 입력
- update : 데이터 수정
- delete : 데이터 삭제
-
insert
insert into 테이블명 (컬럼1, 컬럼2, ...)
values (값1, 값2, ...);
insert into 테이블명 values (값1, 값2, ...);
update 테이블 set 컬럼1=값1, 컬럼2=값2, ...
where 조건 ... ;
delete (from) 테이블명
where 조건 ... ;
3. Drop vs Truncate vs Delete
3-1. Drop
- drop table 테이블명;
- 만들었던 테이블의 존재 자체가 삭제된다.
DROP TABLE EMPLOYEES3 ;
3-2. Truncate
- 데이터만 삭제
- truncate table 테이블명;
- truncate는 테이블이 삭제되는 명령어는 아니고, 테이블 안에 들어있던 모든 레코드들을 제거하는 명령어이다.
- 즉, truncate만으로는 table 구조를 완전히 삭제하는 것은 아니라는 것
TRUNCATE TABLE EMPLOYEE ;
3-3. Delete
- 데이터 골라서 삭제
- delete from 테이블 where ... ;
- truncate와 delete의 차이점
- delete는 where문으로 부분삭제 가능
- truncate는 DDL문, delete는 DML문
- 내부 방식에 차이가 존재한다.
- truncate는 drop 후에 create한다.
DELETE sample
WHERE deptname = '영업부'
;
3-4. 요약
| DROP | TRUNCATE | DELETE |
|---|
| TABLE | 삭제 | 유지 | 유지 |
| DATA | 삭제 | 삭제 | (조건에 따라) 삭제 |
4. COMMIT
- 모든 작업을 정상적으로 처리하겠다고 확정하는 명령어이다.
- 트랜젝션의 처리 과정을 데이터베이스에 반영하기 위해서, 변경된 내용을 모두 영구 저장한다.
- COMMIT을 수행하면, 하나의 트랜젝션 과정을 종료하게 된다.
- Transaction(Insert, Update, Delete) 작업 내용을 실제 DB에 저장한다.
- 이전 데이터가 완전히 Update된다.
- 모든 사용자가 변경한 데이터의 결과를 볼 수 있다.
5. ROLLBACK
- 작업 중 문제가 발생했을 때, 트랜젝션의 처리 과정에서 발생한 변경 사항을 취소하고, 트랜젝션 과정을 종료시킨다.
- 트랜젝션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌린다.
- transaction(insert, update, delete) 작업 내용을 취소한다.
- 트랜젝션 작업 중 하나라도 문제가 발생하면, 모든 작업을 취소해야 하기 때문에 하나의 논리적인 작업 단위로 구성해 놓아야한다.
- 문제가 발생하면, 논리적인 작업의 단위를 모두 취소해 버리면 되기 때문이다.
6. commit 명령어와 rollback 명령어의 장점
7. 자동 rollback 되는 경우
8. 자동 commit 되는 경우
- DDL구문(create, alter, drop, truncate)
- DCL구문(grant, revoke) 사용 권한
- insert, update, delete 작업 후 commit을 하지 않고, 오라클을 정상 종료시에 commit 명령어를 입력하지 않아도 정상 commit 후 오라클 종료