day DBMS 05

JTH·2023년 2월 14일
0

gb_jth

목록 보기
42/56

1. Oracle data type

1-1. 데이터 타입

  • 데이터 타입이란 컬럼이 저장되는 데이터 유형을 말한다.
  • 기본 데이터 타입은 문자형, 실수, 소수, 자료형등의 여러 데이터를 식별하는 타입이다.

1-2. 문자 데이터 타입

  • varchar2 가변길이로 저장된다.

1-3. 숫자형 데이터 타입

  • 대부분 NUMBER형을 사용한다.

  • P는 소수점을 포함한 전체 자릿수를 의미하고, S는 소수점 자릿수를 의미한다.

  • NUMBER는 가변숫자이므로 P와 S를 입력하지 않으면 저장 데이터의 크기에 맞게 자동으로 조절된다.

입력값	타입		저장되는 값
123.89	NUMBER		123.89
123.89	NUMBER(3)	124	자연스럽게 반올림 진행됩니다...
123.89	NUMBER(3,2)	오류
123.89	NUMBER(4,2)	오류
123.89	NUMBER(5,2)	123.89
123.89	NUMBER(6,1)	123.9

1-4. 날짜 데이터 타입

  • 일반적으로는 날짜 데이터타입은 DATE 타입이다.

1-5. LOB데이터 타입

  • LOB이란 Large Object의 약자로 대용량 데이터를 처리할수 있는 데이터 타입이다.

2. DDL ( Data Definition Language)

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

3. 데이터 조작어( Data Manipulation Language)

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

  • select : 데이터 조회

  • insert : 데이터 입력

  • update : 데이터 수정

  • delete : 데이터 삭제

  • insert into 테이블명 values (값1, 값2, ...)
    -> 전체 컬럼

  • insert into 테이블명 (컬럼1, 컬럼2, ...) values (값1, 값2, ...)
    -> 특정컬럼

  • update 테이블명 set 컬럼1 = 값1, 컬럼2 = 값2, ....
    where 조건..;

  • delete 테이블명 where 조건;

4. drop vs truncate vs delete

4-1. drop

  • drop table 테이블명;
  • 존재 자체가 삭제
  • 로그 안남음

4-2. truncate

  • 데이터만 통 삭제
  • truncate는 테이블이 삭제되는 명령어는 아니고 안에 들어있던 모든 레코드들을 제고 하는 명령어이다.
  • 테이블을 drop했다가, crate 하는 작업
  • 모든 행을 삭제하는 데에는 가장빠르고 효율적인 작업
  • 로그 안남음

4-3. delete

  • delete 는 조건에 해당하는 것만 지울 수도 있고, 전체를 지울수도 잇는 이유가 한줄 한줄 삭제하기 때문이다.
  • 로그를 남김

5. commit 과 rollback

5-1. commit

  • 모든 작업을 정상적으론 처리하겠다고 확정하는 명령어이다.

  • 트랜잭션의 처리 과정을 데이터베이스에 반영하기 위해서, 변경된 내용을 모두 영구 저장한다.

  • commit을 수행하면, 하나의 트랜젝션 과정을 종료하게 된다.

  • transaction 작업 내용을 실제 db에 저장

  • 모든 사용자가 변경한 데이터의 결과를 볼수 있다.

5-2. rollback

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

  • 트랜젝션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌린다.

  • 이전 commit 한 곳 까지만 복구한다.

  • 트랜젝션 작업 중 하나라도 문제가 발생하면, 모든 작업을 취소해야 하기 때문에 하나의 논리적인 작업 단위로 구성해 놓아야함.

  • 문제가 발생하면 논리적인 작업의 단위를 모두 취소해 버리면 되기 때문이다.

5-3. 명령어의 장점

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

5-4. 자동 rollback되는 경우

  • 비정상적인 종료

5-5. 자동 commit 되는 경우

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

6. 컬럼속성 ( 무결성 제약조건 )

  • not null : 널값이 입력되지 못하게 하는 조건
  • unique : 중복된 값이 입력되지 못하게 하는 조건
  • check : 주어진 값만 허용하는 조건
  • primary key : not null + unique + index의 의미
  • foreign key : 다른 테이블의 필드 (컬럼) 를 참조해서 무결성을 검사하는 조건

6-1. 외래키 삭제 옵션

  • on delete cascade : 참조되는 부모 테이블의 행에 대한 delete를 허용한다.
    즉, 참조되는 부모테이블 값이 삭제되면 연쇄적으로 자식 테이블 값 역시 삭제된다.

  • on delete set null : 참조되는 부모테이블의 행에 대한 delete를 허용한다.
    이건 cascade와 다른데, 부모 테이블의 값이 삭제되면 해당 참조하는 자식 테이블의 값들은 null 값으로 설정된다.

profile
//

0개의 댓글