DAY 61

dokiru·2023년 4월 25일
0

학원

목록 보기
40/51

VIEW (뷰)

CREATE [OR REPLACE] [ FORCE | NOFORCE] VIEW view [ (alias, alias,……)]
AS sub-query
[ WITH CHECK OPTION [CONSTRAINT 제약조건] ]
[ WITH READ ONLY ]
  • OR REPLACE : 같은 이름의 View가 있을 경우 삭제 후 다시 생성합니다.
  • FORCE : 기본 테이블의 존재 여부에 상관없이 View 생성
  • NOFORCE : 기본 테이블이 존재할 경우에만 View 생성(DEFAULT)
  • ALIAS : 기본 테이블의 칼럼 이름과 다르게 지정한 View의 칼럼 이름을 지정
  • WITH CHECK OPTION : 주어진 제약조건에 맞는 데이터만 입력 및 수정을 허용
  • WITH READ ONLY : SELECT 만 가능한 읽기 전용 뷰를 생성
  • 사용 목적
  1. 편리성 : SELECT문의 복잡도를 완화하기 위해
  2. 보안성 : 테이블의 특정 열을 노출하고 싶지 않을 경우
  • 종류
  1. 단순 뷰 (테이블 하나..)
  2. 복합 뷰 (테이블 여러개..)
  • 생성
  1. 권한 부여
GRANT CREATE VIEW TO scott;
  1. 생성

+ 3. 삭제

DROP VIEW 뷰이름;

시퀀스(Sequence)

  • 오라클 데이터베이스에서 특정 규칙에 맞는 연속 숫자를 생성하는 객체
    형식
CREATE SEQUENCE 시퀀스 이름
[INCREMENT BY n] -- 증가 값
[START WITH n] -- 시작 값
[MAXVALUE n | NOMAXVALUE] -- 최댓값
[MINVALUE n | NOMINVALUE ] -- 최솟값
[CYCLE | NOCYCLE] -- 최댓값에 도달했을 때 CYCLE이면 시작 값부터 다시 시작
[CACHE n | NOCACHE] -- 시퀀스가 생성할 번호를 메모리에 미리 할당해 놓은 수를 지정, 기본값은 20
  • 사용
-- 다음 번호를 생성
-- 시퀀스 만들고 맨 처음 nextval값 불러오면 START WITH에 있는 값을 불러옴
SELECT 시퀀스이름.nextval FROM dual;

-- 현재의 값을 조회하는 용도
-- nextval이 선행되어야 사용할 수 있음 (시퀀스가 만들어진 맨 처음에는 번호가 만들어진 적이 없어서 불러올 currval 없음 -> 오류 발생)
SELECT 시퀀스이름.currval FROM dual;
  • 수정 : START WITH 값은 변경 불가!
ALTER SEQUENCE 시퀀스이름
[INCREMENT BY n]
[MAXVALUE n | NOMAXVALUE]
[MINVALUE n | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE n | NOCACHE]
  • 삭제 : 시퀀스를 삭제해도 시퀀스를 사용하여 테이블에 추가된 데이터는 삭제되지 않음
DROP SEQUENCE 시퀀스이름

동의어 (synonym)

: 테이블·뷰·시퀀스 등 객체 이름 대신 사용할 수 있는 다른 이름을 부여하는 객체
: 주로 테이블 이름이 너무 길어 사용이 불편할 때 좀 더 간단하고 짧은 이름을 하나 더 만들어 주기 위해 사용

동의어 만들려면 권한 부여 해줘야함 (synonym, public synonym 둘 다에 대한 권한을 줘야함)

GRANT CREATE SYNONYM TO scott;
GRANT CREATE PUBLIC SYNONYM TO scott;
  • 생성
CREATE [PUBLIC] SYNONYM 동의어이름
FOR [사용자.][객체 이름];

CREATE PUBLIC SYNONYM order_history FOR scott.order_history;
-- scott 계정이 만든 order_history를 public으로 저렇게 부르겠다..
-- scott 계정으로 로그인하지 않은 관리자 계정에서도 그냥 order_history로 테이블을 불러올 수 있다
  • 삭제
DROP SYNONYM 동의어이름;
profile
안녕하세요!

0개의 댓글