0720 SQL object

onnbi·2022년 7월 31일
0

sql-tutorial

목록 보기
5/6
post-thumbnail

object

  1. TABLE : ROW와 COLUMN으로 구성된 데이터의 기본 저장 단위
  2. VIEW : SELECT문의 조회결과를 가상의 테이블로 저장
  3. SEQUENCE : 자동 번호 발생기
  4. INDEX : 쿼리 속도 향상
  5. SYNONYM : OBJECT에 또다른 이름 제공

VIEW

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;
  • CREATE OR REPLACE
  • FORCE / NOFORCE
  • WITH CHECK OPTION
  • WITH READ ONLY

SEQUENCE

순차적으로 정수 값을 자동으로 생성하는 객체
자동 번호 발생기의 역할

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 : 현재 시퀀스 값 반환

INDEX

처리 속도 향상

장점
1. 검색속도가 빨라진다
2. 정적 데이터 관리에 유용하다

단점
1. 인덱스 생성에 시간이 필요하다
2. 인덱스를 위한 추가 저장 공간이 필요하다
3. 데이터 변경작업이 자주 일어나는 경우 오히려 성능 저하

SYNONYM

사용자가 다른 사용자의 객체를 참조할 때 [사용자ID].[테이블명]으로 표기하는데, 긴 테이블명을 동의어(SYNONYM)으로 설정하여 간단하게 사용할 수 있다

  • 비공개 동의어
    1. 객체에 대한 접근 권환을 부여받은 사용자가 정의
      GRANT CREAT SYNONYM TO 계정명 권한 부여
    2. 해당 사용자만 사용할 수 있음
  • 공개 동의어
    1. 권한을 주는 사용자가 정한 동의어
    2. 모든 사용자가 사용할 수 있음

표현식

CREATE SYNONYM 동의어이름 FOR 테이블명

타계정에서도 SELECT 권한 있다면 동의어 사용 가능

profile
aelatte coding journal

0개의 댓글