오라클 객체
인덱스(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 별칭;