[Oracle] VIEW, INDEX, SYNONYM, SEQUENCE

2021. 6. 14. 14:49DataBase

* VIEW

- 하나 이상의 테이블을 합하여 만든 가상의 테이블.


장점 - 편리성 : 자주 사용되는 복잡한 질의를 뷰로 미리 정의해 놓을 수 있음. 

       - 보안성 : 각 사용자별로 필요한 데이터만 선별하여 보여줄 수 있음. 


특징 - 원본 데이터 값에 따라 같이 변함

       - 독립적인 인덱스 생성이 어려움

       - 삽입, 삭제, 갱신 연산에 많은 제약이 따름

CREATE VIEW vw_book
AS SELECT *
   FROM book
   WHERE bookname LIKE '%축구%';

 

 


* INDEX

-인덱스는 데이터의 검색 속도를 향상시키기 위하여 사용하는 목차 같은 개념

 

인덱스 생성 시 고려사항 

- 인덱스는 WHERE 절에 자주 사용되는 속성이어야 함.

- 인덱스는 조인에 자주 사용되는 속성이어야 함. 

- 단일 테이블에 인덱스가 많으면 속도가 느려질 수 있음 (테이블 당 4~5개 정도 권장).

 

예) Book 테이블의 bookname 열을 대상으로 비 클러스터 인덱스 ix_Book을 생성하라.

CREATE INDEX ix_book ON book (bookname);

 

예) 인덱스 ix_Book을 재생성하시오.

ALTER INDEX ix_book REBUILD;

 

예) 인덱스 ix_Book을 삭제하시오.

DROP INDEX ix_book;

 

 


 

* SYNONYM (동의어)

 

-데이터베이스 테이블 등의 객체에 대한 별칭, 동의어

-시노님을 사용하기 위해 권한부여 필요

--생성
CREATE OR REPLACE [PUBLIC] SYNONYM [스키마명.] TLSHSLAAUD
FOR[스키마명.]객체명;

--삭제
DROP [PUBLIC] SYNONYM [스키마명.] 시노님명;

 

 


* SEQUENCE

 

-자동으로 순번을 반환하는 객체

CREATE SEQUENCE [스키마명.]시퀀스명
INCREMENT BY 증감숫자 -- 기본값 1
START WITH 시작숫자 -- 기본값 1
NOMINVALUE | MINVALUE 최소값 -- 기본값 NOMINVALUE		여기부터 생략가능
NOMAXVALUE  | MAXVALUE 최대값 -- 기본값 NOMAXVALUE
NOCYCLE | CYCLE                          -- 기본값 NOCYCLE
NOCACHE | CACHE;                        -- 기본값 NOCACHE

-시퀀스 사용

시퀀스의 현재 (순번) 값 : 시퀀스명.CURRVAL 

시퀀스의 다음 (순번) 값 : 시퀀스명.NEXTVAL 

- NEXTVAL을 통해 증감함

--시퀀스생성
CREATE SEQUENCE BOOK_BOOKID_SEQ
INCREMENT BY 1
START WITH 31;

--시퀀스조회
SELECT BOOK_BOOKID_SEQ.NEXTVAL FROM DUAL;
SELECT BOOK_BOOKID_SEQ.CURRVAL FROM DUAL;

--INSERT할때 BOOKID가 알아서 카운팅되도록
INSERT INTO BOOK(BOOKID, BOOKNAME, PUBLISHER, PRICE)
VALUES(BOOK_BOOKID_SEQ.NEXTVAL , '자바의정석', '남궁 성', 35000);