SELECT 쿼리의 실행 결과를 화면에 저장한 논리적 가상 테이블
물리적인 실제 테이블과 링크 개념
copy table과 달리 view의 데이터를 변경하면 원본 테이블에 반영된다
GRANT CREATE VIEW TO 계정;
뷰를 만들기 위한 권한 부여
CREATE VIEW V.NAME AS SELECT 컬럼1, 컬럼2,.. FROM T.NAME
-- VIEW 생성 (얕은 복사)
CREATE OR REPLACE VIEW EMP_VIEW
AS
SELECT EMP_ID, EMP_NAME, PHONE, SALARY FROM EMPLOYEE;
-- TABLE COPY (깊은 복사)
CREATE TABLE EMP_COPY5
AS SELECT EMP_ID, EMP_NAME, PHONE, SALARY FROM EMPLOYEE;
순차적으로 정수 값을 자동으로 생성하는 객체
자동 번호 발생기의 역할
START WITH
발생시킨 시작값 (기본 1)
INCREMENT BY
증가치 (기본 1)
MAXVALUE | NOMAXVALUE
-- 최대값지정 (MINVALUE : 최소값지정)
CYCLE | NOCYCLE
시퀀스 최대값도달 시 사이클
CHACHE | NOCACHE
메모리상에서 시퀀스값 관리
CREATE SEQUENCE S.NAME
START WITH 1 -- 시퀀스 시작 번호
INCREMENT BY 5 -- 다음 숫자 발생 시 증가폭
MAXVALUE 1000 -- 시퀀스가 발생시키는 숫자의 최대값
[CYCLE | NOCYCLE]
-- CYCLE : 최대값도달시 이후에 다시 START부터 시작
-- NOCYCLE : 에러
[CACHE | NOCACHE]
-- 시퀀스값을 메모리에서 처리할지 결정
인서트 실패해도 시퀀스는 상관없이 증가
INSERT INTO USER_TBL VALUES(USER_NO_SEQ.NEXTVAL, 'userID', 'PASS123');
-- 인서트가 실패해도 자동번호발생기는 실행되었기 때문에
-- 시퀀스 번호는 +1 되었음
SEQ_NAME.NEXTVAL
: 현재 시퀀스의 다음값 반환
SEQ_NAME.CRRVAL
: 현재 시퀀스 값 반환
처리 속도 향상
장점
1. 검색속도가 빨라진다
2. 정적 데이터 관리에 유용하다
단점
1. 인덱스 생성에 시간이 필요하다
2. 인덱스를 위한 추가 저장 공간이 필요하다
3. 데이터 변경작업이 자주 일어나는 경우 오히려 성능 저하
사용자가 다른 사용자의 객체를 참조할 때 [사용자ID].[테이블명]으로 표기하는데, 긴 테이블명을 동의어(SYNONYM)으로 설정하여 간단하게 사용할 수 있다
GRANT CREAT SYNONYM TO 계정명
권한 부여 CREATE SYNONYM 동의어이름 FOR 테이블명
타계정에서도 SELECT 권한 있다면 동의어 사용 가능