데이터 조작어, drop,commit에 대해

노건우·2023년 7월 25일
0

DML

데이터 조작어를 의미한다.
DATA Manipulation language
데이터 조회 및 변형을 위한 명령어를 말한다.
select, update, delete, insert를 사용하며,
데이터 값을 집어넣을 때는
insert into 테이블명 values(값1,값2,..)//이렇게 한번에 쓰는 형태
insert into 테이블명(컬럼1,컬럼2..)
values(값1,값2...)//이렇게 띄어 쓰는 형태가 있다.

update 테이블명 set 컬럼1 = 값1,컬럼2 = 값2
where 조건
-delete (from)테이블명 where 조건;
업데이트와 DELETE의 양식

DROP,TRUNCATE,DELETE

셋을 비교하며 글을 작성해보려 한다.
우선 DROP은 테이블 존재자체를 삭제한다는 의미이고, truncate는 데이터만 통으로 삭제한다는 의미이다.
마지막 DELETE는 데이터를 골라서 삭제한다.
조금 더 자세히 말해보면, TRUNCATE의 경우 테이블이 삭제되는 명령어는 아니고 테이블 안에 들어있던 모든 레코드들을 제거하는 명령어이다.
즉 테이블을 drop했다가 create한다.
->모든 행을 삭제하는 가장 빠르고 효율적인 방법(복귀의 의지없음)
DELETE의 경우는 truncate처럼 테이블 구조는 남기고 안의 데이터만 삭제한다.
->delete는 부분삭제 가능하다.
->내부방식이 다르다. 한줄한줄 삭제를 한다.(내용이 어느정도 남는다)

표로 알기 쉽게 정리해 나타내어 보자

COMMIT,ROLLBACK

그렇다면 ROLLBACK, COMMIT이 무엇인지 알아야 위의 표도 이해 가능 할 텐데, 먼저 COMMIT부터 알아보자.
COMMIT은 모든 작업을 정상적으로 처리하겠다고 확정하는 명령어이다.

  • 트랜잭션의 처리 과정을 데이터베이스에 반영하기 위해서 변경된 내용을 모두 영구 저장한다.
  • commit 수행하면, 하나의 트랜잭션 과정을 종료하게 된다.
  • Transaction(insert,update,..)작업 내용을 실제 DB에 저장한다.
  • 이전 데이터가 완전히 적용된다
  • 모든 사용자가 변경한 데이터의 결과를 볼 수 있다.
    즉 COMMIT 수행하면, 하나의 트랜젝션 과정을 종료하게 된다.
    이것이 commit의 특징이다.

ROLLBACK은 작업 중에 문제가 발생했을 때 트랜잭션의 처리 과정에서 발생한 변경사항을 취소하고, 트랜잭션 과정을 종료시킨다

  • 트랜잭션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌린다.
  • TRANSACTION(INSERT,UPDATE,DELETE)작업 내용을 취소한다.
  • 이전 COMMIT한 곳 까지만 복구한다.
  • 트랜잭션 작업중 하나라도 문제가 발생하면 모든 과정을 취소해야 하기 때문에 하나의 논리적인 작업 단위로 구성해 놓아야 한다.
  • 문제가 발생하면, 논리적인 작업 단위를 모두 취소해버리면 되기 때문이다.

결국 실제로 서버를 운영하는데 있어서 돌발상황에 대비해 항상 트랜잭션을 걸어놓아야 한다.

commit ,rollback 명령어의 장점

  • 데이터 무결성이 보장된다.
  • 논리적으로 연관된 작업을 그룹화할 수 있다.

자동 commit되는 경우

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

자동 rollback되는 경우

  • 비정상적인 종료

컬럼 속성(무결성 제약조건)
무결성 제약조건이란 데이터베이스의 정확성, 일관성을 보장하기 위해 저장, 삭제, 수정 등을 제약하기 위한 조건을 뜻한다.
-not null : 널 값이 입력되지 못하게 하는 조건
-unique : 중복된 값이 입력되지 못하게 하는 조건
-check : 주어진 값만 허용하는 조건
-primary key : not null + unique + index 의 의미
-foreign key : 다른 테이블의 필드(컬럼)를 참조해서 무결성을 검사하는 조건

DCL

데이터 제어어(data control language)

  • 사용자에게 권한 생성 혹은 권한 삭제 같은 명령어
  • grant : 권한 생성
  • revoke : 권한 삭제
profile
초보 개발자 이야기

0개의 댓글