DB 마지막!
SELECT문의 실행 결과(RESULT SET)를 저장하는 객체
논리적 가상 테이블 -> 테이블 모양을 하고 있지만 실제로 값을 저장하고 있지는 않음.
CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW 뷰이름 [(alias[,alias]...)]
AS subquery
[WITH CHECK OPTION]
[WITH READ ONLY];
순차적 번호 자동 발생기 역할의 객체
SEQUENCE 객체를 생성해서 호출하게되면 지정된 범위 내에서 일정한 간격으로 증가하는 숫자가 순차적으로 출력됨.
EX) 1부터 10까지 1씩 증가하고 반복하는 시퀀스 객체
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
SEQUENCE는 주로 PK역할의 컬럼에 삽입되는 값을 만드는 용도로 사용
--> 인위적 주식별자
CREATE SEQUENCE 시퀀스이름
[STRAT WITH 숫자] -- 처음 발생시킬 시작값 지정, 생략하면 자동 1이 기본
[INCREMENT BY 숫자] -- 다음 값에 대한 증가치, 생략하면 자동 1이 기본
[MAXVALUE 숫자 | NOMAXVALUE] -- 발생시킬 최대값 지정 (10의 27승 -1)
[MINVALUE 숫자 | NOMINVALUE] -- 최소값 지정 (-10의 26승)
[CYCLE | NOCYCLE] -- 값 순환 여부 지정
[CACHE 바이트크기 | NOCACHE] -- 캐쉬메모리 기본값은 20바이트, 최소값은 2바이트
참고!!!
시퀀스의 캐시 메모리는 할당된 크기만큼 미리 다음 값들을 생성해 저장해둠
--> 시퀀스 호출 시 미리 저장되어진 값들을 가져와 반환하므로
매번 시퀀스를 생성해서 반환하는 것보다 DB속도가 향상됨.
SEQUENCE 사용법
1) 시퀀스명.NEXTVAL : 다음 시퀀스 번호를 얻어옴. (INCREMENT BY만큼 증가된 값)
단, 시퀀스 생성 후 첫 호출인 경우 START WITH의 값을 얻어옴.
2) 시퀀스명.CURRVAL : 현재 시퀀스 번호 얻어옴.
단, 시퀀스 생성 후 NEXTVAL 호출 없이 CURRVAL를 호출하면 오류 발생.
SQL 명령문 중 SELECT의 처리 속도를 향상 시키기 위해 컬럼에 대해서 생성하는 객체
인덱스 내부 구조는 B* 트리 형식으로 되어있음.
[작성법]
CREATE [UNIQUE] INDEX 인덱스명
ON 테이블명 (컬럼명, 컬럼명, ... | 함수명, 함수계산식);
-- 인덱스가 자동으로 생성되는 경우
--> PK 또는 UNIQUE 제약조건이 설정되는 경우