VIEW, SEQUENCE, INDEX

DONI·2021년 9월 30일
0

Oracle

목록 보기
14/22
post-thumbnail

🏹 뷰 (VIEW)

SELECT문의 실행 결과(RESULT SET)를 저장하는 객체 (논리적 가상 테이블)
DML(INSERT, UPDATE, DELETE)도 사용은 가능하지만,
제약이 많이 따르기 때문에 보통 조회(SELECT) 용도로 사용함

  • 사용 목적

    • 복잡한 SELECT문을 쉽게 재사용하기 위해
    • 테이블의 진짜 모습을 감추기 위해
  • 작성법
    CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW 뷰명 AS 서브쿼리
    [WITH CHECK OPTION] [WITH READ ONLY];

    • OR REPLACE : 기존에 동일한 뷰 이름이 존재하는 경우 덮어쓰기
    • FORCE : 서브쿼리에 사용된 테이블이 존재하지 않아도 강제 생성
    • WITH CHECK OPTION : 옵션을 설정한 컬럼 값 수정 불가
    • WITH READ ONLY : SELECT문만 사용 가능 (DML 사용 불가)

🏹 시퀀스 (SEQUENCE)

순차적 번호 자동 발생기 역할의 객체
오류, ROLLBACK 등과 관계 없이 NEXTVAL 구문이 수행되면 무조건 증가하며,
PRIMARY KEY 컬럼 값으로써 주로 사용함

  • 작성법
    CREATE SEQUENCE 시퀀스명 [START WITH 숫자] [INCREMENT BY 숫자]
    START WITH : 처음 발생시킬 시작값 지정
    INCREMENT BY : 다음 값에 대한 증가치

    📍 예) 100번부터 시작하여 5씩 증가하는 시퀀스 생성
    CREATE SEQUENCE SEQ_NUMBER START WITH 100 INCREMENT BY 5;

  • 사용 방법

    • 시퀀스명.CURRVAL : 현재 시퀀스 번호를 얻어옴
    • 시퀀스명.NEXTVAL : 다음 시퀀스 번호를 얻어옴
      (단, 시퀀스 생성 후 첫 호출인 경우 START WITH 값을 얻어옴)

🏹 인덱스 (IMDEX)

SELECT문의 처리 속도를 향상시키기 위해 컬럼에 대해 생성하는 객체
PK 또는 UNIQUE 제약조건이 설정되는 경우 인덱스가 자동으로 생성됨

  • 작성법
    CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명
    (컬럼명, 컬럼명, ... | 함수명, 함수계산식);
profile
틀린 내용이 있다면 댓글 또는 이메일로 알려주세요 ❤ꔛ❜

0개의 댓글