62일차

박미지·2023년 1월 27일
0

Oracle DB

목록 보기
7/7
  1. 뷰(View)
    하나의 가상 테이블로 기존의 테이블을 이용하여 생성하는 “데이터 보기“ 객체를 의미함. 즉, 뷰는 기존의 테이블 또는 테이블에서 필요한 정보들을 조회하여 그 조회의 결과를 묶어서 만든 데이터의 조회 집합이며, 실제 데이터가 저장되는 것은 아니지만 뷰를 통해 테이블을 관리할수 있음
  • SCOTT 계정 권한 지정 : GRANT CREATE VIEW TO SCOTT: --SYSTEM 계정에서 뷰명 : 생성할 뷰의 이름을 지정
  • SUB QUERY : 뷰를 생성할 조회(SELECT)문을 나타냄
  • WITH CHECK OPTION : 조건식에 만족하는 데이터만 INSERT, UPDATE 가능
  • WITH READ ONLY : SELECT만 가능한 뷰를 생성
  • FORCE : 뷰를 생성할 기준 테이블이 존재하지 않아도 강제로 뷰를 만드는 옵션

-- 뷰를 사용하는 이유:
1. 보안강화 (총무팀에서 특정 사원 정보만 공유할 경유)
2. 쿼리를 단순화 (직접 작업 할 경우 테이블에 대한 이해 및 분석을 단순화)
-뷰를 위한 데이터 사전 뷰
DBA_VIEWS, USER_VIEWS, ALL_VIEWS
USER_VIEWS : 현재 사용자가 가지고 있는 뷰의 조회에 사용
ALL_VIEWS : 현재 사용자가 액세스 할 수 있는 모든 뷰의 조회에 사용

  1. 인덱스 (INDEX)
    데이터베이스 테이블에 있는 데이터를 빨리 찾기 위한 용도의 데이터베이스 객체이며 일종의 색인기술
    인덱스를 생성하게 되면 index table을 생성해 관리 테이블에 있는 컬럼 중 하나 이상의 컬럼으로 생성 사용예) CREATE [UNIQUE] INDEX 인덱스명 ON
    테이블명(컬럼], 컬럼2, 컬럼3 ......);

UNIQUE 인덱스에 대해서는 컬럼값에 중복데이터를 허용하지 않음

  1. 인덱스 종류
  • 유일(UNIQUE) 인덱스
    테이블에 하나 이상의 같은 데이터 값이 입력되는 것을 막아 줌 즉, 유일성 제약 조건과 함께 컬럼의 유일성을 보장해 줌
    오라클 테이블의 기본키(PRIMARY KEY)와 유일성 제약조건을 가진 컬럼에 대해 자동으로 생성하는 인덱스가 바로 유일 인덱스 임
  • 비유일(NON-UNIQUE) 인덱스
    유일 인덱스의 정반대로 참조되는 테이블 컬럼은 중복된 데이터 값을 가질수 있음.
  • 복합(CONCASTENATED) 인덱스
    한 테이블의 두 개 이상의 컬럼에 대하여 만들어지는 인덱스를 의미함
    인덱스 생성시 한 테이블의 복수 개 컬럼을 지정하여 생성
  1. 인덱스 관리 (USER_INDEXES, USER_IND_COLUMNS, USER_COL_COMMENTS)
  • ALL : 현 사용자가 엑세스 가능, USER : 사용자, DBA : 모든 인덱스
    해당 테이블에 인덱스 조회
    SELECT FROM USER_INDEXES WHERE TABLE_NAME = 'CUSTOMERS';
    해당 인덱스에 설정된 컬럼 정보 조회
    SELECT
    FROM USER_IND_COLUMNS
    WHERE INDEX_NAME = 'PK_CUSTOMERS';
    테이블생성시 각 컬럼의 커맨드 정보 조회
    SELECT * FROM USER_COL_COMMENTS
    WHERE TABLE_NAME = 'CUSTOMERS';

  • 인덱스 삭제
    사용예 DROP INDEX [인덱스 명];

  • 인덱스 리빌드
    사용법) ALTER INDEX [인덱스명] REBUILD;
    ALTER INDEX PK_CUSTOMERS REBUILD;

  • 전체 인덱스 리빌드를 위한 쿼리문

  • 인덱스 사용시 주의 사항
    테이블 조회 속도를 향상시키기 위한 용도로 너무 많은 인덱스는 피해야
    하며, 인덱스 컬럼으로 컬럼의 중복을 최소화 해야 함

  1. 시퀀스 (SEQUENCE)
    여러 사용자에게 유일(UNIQUE)한 값을 생성해 주는 오라클 객체
    즉, 시퀀스를 사용하여 테이블의 기본 키와 같이 순차적으로 증가하는 값을 가지는 컬럼값을 자동으로 생성할수 있음

START WITH n : 시퀀스의 시작값을 n값으로 지정 (기본 시작값은 1)
INCREMENT BY n : 시퀀스의 증가분을 n값으로 지정(기본값은 1, 0이될수 없음) MAXVALUE/NOMAXVALUE : 최대값 (NOMAX~ 무한대, MAX~ 1028 기본값) MINVALUE/NOMINVALUE : 최소값(기본값 1, NOMIN~ 최소값 무한대로 지정) CYCLE/NOCYCLE : 최대값까지 증가후 최초값으로 돌아가는 옵션(기본NOC~) CACHE/NOCACHE : 캐시 사용(NOC~ 기본값 한번에 20개 캐시)

profile
공부하는 백엔드 개발자

0개의 댓글