MSA Full-Stack 개발자 양성과정/데이터베이스(Oracle)

MSA Full-Stack 개발자 양성 과정 -25일차 노트 필기_데이터베이스(Oracle) Sequence, Transaction, 계층형 쿼리_220825

Joslynn 2022. 8. 26. 01:05

Sequence

: 자동증가값을 설정
: not null이면서 pk인 대상에 sequence를 사용하는 것이 권장되다.
  ex) 게시판의 글번호

: 시퀀스 생성 
create sequence 시퀀스이름 -- 1부터 시작
    [start with 시작값 ]
    [increment by 증가치 ]
    [maxvalue 최대값 ]
    [minvalue 최소값 ]
    [cycle | nocycle ] : cycle의 경우, 최대값(maxvalue)까지 오면 다시 최소값으로 돌아감(minvalue)
    [cache | nocache ] : cache 사용시, 중간값 분실이 있을 수 있음, nochache 권장

: 시퀀스 수정
alter sequence 시퀀스이름 수정내용;

:시퀀스 삭제
drop sequence 시퀀스이름;

: 시퀀스 사용법
  1) 시퀀스이름.NEXTVAL: 시퀀스 값을 증가
  2) 시퀀스이름.CURRVAL: 시퀀스의 현재값을 조회

 


Transaction

: insert ,update ,delete를 수행한 결과를 저장(commit), 취소(rollback) 할 수 있다.

 

특정 영역을 나누어서 저장, 취소를 선택적으로 할 수 있다

: savepoint 이름; =>SQL실행 전에 영역을 분할함.

 ex) savepoint A;

: rollback  이름; => 특정 영역에 해당하는 부분까지 취소됨.

 ex) rollback to A;

 

**Commit - 전체저장완료

**Rollback - 전체취소


다른계정에 있는 테이블 접근하기

  현재 계정 안에서 다른 계정에 있는 테이블을 접근하고 싶을 때,
  : 권한이 있다면, 계정명.테이블이름 가능하다.
  
  권한부여
  : GRANT ALL ON 계정명.테이블이름 TO 부여할계정명;
  
  권한제거
  : REVOKE ALL ON 계정명.테이블이름 FROM 부여할계정명;

 


계층형 쿼리