SQL - OBJECT(VIEW, SEQUENCE)
VIEW
- SELECT 쿼리의 실행 결과를 화면에 저장한 논리적 가상 테이블
- SQL문만 저장되어 있고 물리적인 테이블은 없음
- 서브쿼리의 SELECT절에 함수가 사용된 경우 별칭 지정 필수
VIEW 생성
CREATE OR REPLACE VIEW [뷰 이름] AS
SELECT문;
VIEW 수정
CREATE OR REPLACE VIEW [뷰 이름] AS
SELECT문;
VIEW 삭제
DROP VIEW [뷰 이름]
VIEW DML 조작 가능
- INSERT / UPDATE / DELETE
- VIEW 데이터 변경 시 실제 데이터 테이블도 변경
VIEW DML 조작 불가
- VIEW 정의에 포함되지 않은 컬럼을 조작할 경우
- NOT NULL 제약 조건 지정된 경우
- 산술 연산식이 포함된 경우
- 그룹 함수 또는 GROUP BY 절 포함된 경우
- DISTINCT 포함된 경우
- JOIN을 사용한 경우(DELETE는 가능)
VIEW OPTION
- OR REPLACE : 기존에 동일한 VIEW가 있을 경우 덮어쓰고 없으면 새로 생성
- FORCE : SUBQUERY에 기술된 테이블이 존재하지 않아도 VIEW 생성 가능
- NOFORCE : 기본값. SUBQUERY에 기술된 테이블이 존재해야만 VIEW 생성 가능
- WITH CHECK OPTION : SUBQUERY에 기술된 조건에 부합하지 않는 값을 수정할 경우 오류 발생
- WITH READ ONLY : VIEW에 대한 조회만 가능, DML(INSERT/UPDATE/DELETE) 수정 불가
SEQUENCE
- 정수를 순차적으로 생성하는 객체
SEQUENCE 생성
CREATE SEQUENCE 시퀀스명;
CREATE SEQUENCE 시퀀스명
START WITH 숫자 : 시작 값. 기본값 1
INCREMENT BY 숫자 : 다음 값에 대한 증가치. 기본값 1
MAXVALUE 숫자 : 발생시킬 최대값. 10의 27승-1까지 가능
MINVALUE 숫자 : 발생시킬 최소값, -10의 26승
CYCLE / NOCYCLE :시퀀스가 최대값까지 증가 완료 시 CYCLE은 START WITH 설정 값으로 돌아감
CACHE / NOCACHE : CACHE는 메모리 상에서 시퀀스 값 관리. 기본값 20
SEQUENCE 수정
- START WITH는 변경 불가. 재설정이 필요한 경우 기존 시퀀스를 삭제 후 재생성 필요
ALTER SEQUENCE 시퀀스명
INCREMENT BY 숫자
MAXVALUE 숫자
MINVALUE 숫자
CYCLE / NOCYCLE
CACHE / NOCACHE
SEQUENCE 삭제
DROP SEQUENCE 시퀀스명
INCREMENT BY 숫자
MAXVALUE 숫자
MINVALUE 숫자
CYCLE / NOCYCLE
CACHE / NOCACHE