인덱스(Index)

 - 데이터 검색 향상을 위해 사용함, DML에 취약함, SQL실행에 악영향을 줄 수도 있음

 - 뷰에는 인덱스를 생성할수 X

▷ 생성/ 삭제

CREATE INDEX 인덱스명 ON 테이블명 (칼럼명 ASC/DESC, ......);

DROP INDEX 인덱스명;

 - 고유인덱스 : 칼럼에 중복 데이터가 없을 때 사용     ex) deptno, id

CREATE UNIQUE INDEX 인덱스명 ON 테이블명 (칼럼명 ASC/DESC, ......);

 - 결합인덱스 : 칼럼을 2개 이상으로 인덱스 생성

뷰(View)

 - 여러개의 테이블을 조회하는 가상의 테이블(편리성)

 - 사용자에게 허용된 자료만 제한적으로 보여주기 위해 사용(보안성)

 ▷ 생성/ 삭제

CREATE VIEW 뷰이름 AS (SELECT문);

DROP VIEW 뷰이름;

CREATE [OR REPLACE] [FORCE/NOFORCE] VIEW 뷰이름 AS (SELECT문)
[WITH CHECTK OPTION CONSTRAINT ~~]
[WITH READ ONLY]
-- OR REPLACE : view가 이미 존재할 경우 대체
-- FORCE/NOFORCE : SELECT문의 기반테이블이 없어도 강제생성/존재할때만 생성
-- WITH CHECTK OPTION : 제약조건에 만족하는 데이터에 한해 DML 작업가능
-- WITH READ ONLY : view 읽기전용

 ▷ 생성된 뷰 조회

SELECT * FROM 뷰이름

시퀀스(Seqeunce) : 연속적인 숫자를 생성하는 객체

 - 캐시 : 시퀀스 생성속도를 개선할 때 사용

▷ 생성/ 삭제

CREATE SEQUENCE 시퀀스명
  INCREMENT BY 10	// 증가값
  START WITH 10		// 시작값
  MAXVALUE 90		// 최대값
  MINVALUE 0		// 최소값
  [CYCLE/NOCYCLE]
  [CACHE n/NOCACHE];
  
DROP SEQUENCE 시퀀스명;

▷ 수정 : START WITH은 수정불가

ALTER SEQUENCE 시퀀스명
  INCREMENT BY 10
  MAXVALUE 90
  MINVALUE 0
  [CYCLE/NOCYCLE];

▷ 사용 : CURRVAL, NEXTVAL

 - 한번 NEXTVAL을 사용한 후 CURRVAL 사용 가능

INSERT INTO 테이블명 VALUES (시퀀스명.CURRVAL, ...);	-- 마지막 생성번호(10)
INSERT INTO 테이블명 VALUES (시퀀스명.NEXTVAL, ...);	-- 마지막으로 생성된 번호의 다음번호(20)

동의어(Synonym) : 객체에 별칭 지정

CREATE [PUBLIC] SYNONYM 별칭 FOR 테이블명;		-- PUBLIC : 모든 사용자가 검색가능

DROP SYNONYM 별칭;