데이터 수정 및 저장

박정호·2024년 10월 16일

DBMS

목록 보기
4/6

1. DDL(Data Definition Language)

  • 데이터의 구조를 정의하기 위한 테이블 생성, 삭제, 수정 등의 기능을 수행하는 명령어
    • create : 테이블 생성
    • drop : 테이블 삭제
    • alter : 테이블 수정
    • truncate : 테이블에 있는 모든 데이터 삭제

2. DML(Data Manipulation Language)

  • 데이터 조회 및 변형을 위한 명령어

    • select : 데이터 조회
    • insert : 데이터 입력
    • update : 데이터 수정
    • delete : 데이터 삭제
  • insert

 -- 특정 column에만 값을 넣을 때(나머지 column에는 null값이 들어간다)
 insert into 테이블명 (컬럼1, 컬럼2, ...)
 values (1,2, ...);
 
 -- 모든 column에 값을 넣을 때. 컬럼의 순서대로 값 입력한다.
 insert into 테이블명 values (1,2, ...);
  • update
 update 테이블 set 컬럼1=1, 컬럼2=2, ...
 where 조건 ... ;
  • delete
 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. 요약

DROPTRUNCATEDELETE
TABLE삭제유지유지
DATA삭제삭제(조건에 따라) 삭제

4. COMMIT

  • 모든 작업을 정상적으로 처리하겠다고 확정하는 명령어이다.
  • 트랜젝션의 처리 과정을 데이터베이스에 반영하기 위해서, 변경된 내용을 모두 영구 저장한다.
  • COMMIT을 수행하면, 하나의 트랜젝션 과정을 종료하게 된다.
  • Transaction(Insert, Update, Delete) 작업 내용을 실제 DB에 저장한다.
  • 이전 데이터가 완전히 Update된다.
  • 모든 사용자가 변경한 데이터의 결과를 볼 수 있다.

5. ROLLBACK

  • 작업 중 문제가 발생했을 때, 트랜젝션의 처리 과정에서 발생한 변경 사항을 취소하고, 트랜젝션 과정을 종료시킨다.
  • 트랜젝션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌린다.
  • transaction(insert, update, delete) 작업 내용을 취소한다.
  • 트랜젝션 작업 중 하나라도 문제가 발생하면, 모든 작업을 취소해야 하기 때문에 하나의 논리적인 작업 단위로 구성해 놓아야한다.
  • 문제가 발생하면, 논리적인 작업의 단위를 모두 취소해 버리면 되기 때문이다.

6. commit 명령어와 rollback 명령어의 장점

  • 데이터 무결성이 보장된다.

  • 논리적으로 연관된 작업을 그룹화 할 수 있다.

    요약 : commit = 저장, rollback = 불러오기

7. 자동 rollback 되는 경우

  • 비정상적인 종료

8. 자동 commit 되는 경우

  • DDL구문(create, alter, drop, truncate)
  • DCL구문(grant, revoke) 사용 권한
  • insert, update, delete 작업 후 commit을 하지 않고, 오라클을 정상 종료시에 commit 명령어를 입력하지 않아도 정상 commit 후 오라클 종료

0개의 댓글