*오라클 주요 객체 : VIEW , SEQUENCE, INDEX ..
1. VIEW : SELECT문의 실행 경과(RESULT SET)을 저장하는 객체
->논리적 가상 테이블로서 실제 값을 저장하고 있진 않음
->복잡한 SELECT 문의 쉬운 재사용을 위해서 사용하고
->테이블의 진짜 모습을 감출 수 있어 보안상으로도 장점이 있다
※ VIEW 사용시
- ALTER 구문은 사용이 불가하다
- VIEW 를 이용한 DML (SELECT, UPDATE, DELETE ) 가 가능은 하나 제약이 많이 따르기 떄문에
보통 조회 용도로만 쓰는것이 좋다
-VIEW 를 이용해 INSERT를 진행하면 VIEW에 삽입된것 처럼 보이지만 원본 테이블에 삽입이 되는 것이다.
<VIEW 생성방법>
CREATE VIEW `VIEW_NAME`
AS `SUBQUERY`
※ 추가옵션:
1. OR REPLACE : CREATE 뒤
-> 동일 뷰 이름이 존재하면 덮어 쓰고 없으면 새로 생성
2. FORCE / NOFORCE : CREATE 뒤
-> FORCE : 서브쿼리에 사용된 테이블이 존재하지 않아도 뷰 생성
-> NOFORCE : 서브쿼리에 사용된 테이블이 존재해야만 뷰 생성(기본 DEFAULT)
3. WITH CHECK OPTION : 서브쿼리 뒤
->옵션을 설정한 컬럼의 값을 수정 불가능하게 함 (조건을 벗어나게 변경 불가)
4. WITH READ ONLY : 서브쿼리 뒤
-> 조회만 가능하도록 함 (DML 전부 수행 불가)
2. SEQUENCE : 순차적 번호 자동 발생기 역할의 객체
-> PRIMARY 키 값으로 주로 사용
<SEQUENCE 생성방법>
CREATE SEQUENCE `SE_NAME`
※ 추가옵션: 뒤에 차례로 추가 가능
1. START WITH N : N부터 시작 , 기본 1
2. INCREMENT BY N : N씩 증가함 , 기본 1
3. MAXVALUE N : 발생시킬 최대값 지정(10의 27승까지 가능) , 기본 NOMAXVALUE
4. MINVALUE N : 발생시킬 최소값 지정(-10의 26승까지 가능) , 기본 NOMINVALUE
5. CYCLE : 값 순환 여부 지정, 기본 NO
6. CACHE BYTE크기 : 캐쉬메모리 지정, 기본 20BYTE
(시퀀스 호출 시 미리 저장되어진 값들을 가져와 반환하므로 매번 시퀀스 생성 후 반환하는 것보다 속도 향상)
<SEQUENCE 사용방법>
1. `SE_NAME` . NEXTVAL : 다음 번호를 불러온다. 시작점이면 시작값 불러옴
2. `SE_NAME` . CURRVAL : 현재 번호를 불러온다
*시퀀스는 오류 / 롤백 등과 관계없이 NEXTVAL 구문이 수행되면 무조건 숫자를 증가시킨다
<SEQUENCE 변경방법>
ALTER SEQUENCE `SE_NAME`
~옵션
*START WITH 는 변경이 불가하므로 DROP 후 재생성해야한다
3. INDEX : SQL명령문 중 SELECT 처리 속도를 향상시키기 위해서 컬럼에 대해 생성하는 객체
-> 인덱스 내부 구조는 B트리로 이루어져있으며
-> 이진트리 특성상 자동 정렬 및 검색 속도에 장점이 생김
-> 시스템의 부하를 줄이므로 전체 성능 향상을 시킬 수 있다.
-> 다만 , 인덱스를 추가하기 위한 저장공간이 필요하고
-> 인덱스 생성의 시간이 걸리며
-> DML이 빈번한 경우에는 오히려 성능이 저하되는 단점이 있다.
-> PRIMARY KEY 또는 UNIQUE 제약조건이 설정되는 경우 인덱스가 자동으로 생성된다.
<INDEX 생성방법>
CREATE INDEX `INDEX_NAME`
ON `TABLE_NAME` ( `COL_NAME1`, `COL_NAME2` ... -또는 함수명/ 함수계산식)
(인덱스를 생성했다고 자동적으로 사용되지는 않는다)
<INDEX 사용 방법>
-> WHERE 절에 INDEX가 추가된 컬럼이 언급되는 것이 사용 방법
'개발자로 업그레이드 되자 > 오라클,SQL' 카테고리의 다른 글
오라클 DBMS 정리 12(PL/SQL- IF ~ ELSE, LOOP) (0) | 2021.09.29 |
---|---|
오라클 DBMS 정리 11(PL/SQL) (0) | 2021.09.29 |
오라클 DBMS 정리 9(DCL) (0) | 2021.09.29 |
오라클 DBMS 정리 8(TCL) (0) | 2021.09.29 |
오라클 DBMS 정리 7(DDL) (0) | 2021.09.29 |