[Oracle] VIEW, INDEX, SYNONYM, SEQUENCE
2021. 6. 14. 14:49ㆍDataBase
* 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);
'DataBase' 카테고리의 다른 글
[Oracle] PL/SQL, 저장프로시저, 트리거 (0) | 2021.06.14 |
---|---|
[Oracle] DDL문법 - 2 (ALTER, DROP, TRUNCATE) (0) | 2021.06.14 |
[Oracle] DML, CREATE 예제 (0) | 2021.06.13 |
[Oracle] DDL문법 - 1 (CREATE) (0) | 2021.06.13 |
[Oracle] TCL문법 (COMMIT, ROLLBACK, SAVEPOINT) (0) | 2021.06.13 |