SQL - DDL의 시퀀스와 뷰

songmin jeon·2023년 11월 22일
0

1.시퀀스(SEQUENCE)와 뷰(VIEW)


1.1. 시퀀스(SEQUENCE)

연속적인 사건이라는 뜻이며, 자동으로 증가하는 값을 만들어주는 객체

/*SEQUENCE 값 확인하는 방법*/
  SELECT 회원ID_SEQ.NEXTVAL	--[시퀀스명.NEXTVAL] 형식으로 시퀀스 값 호출
  FROM DUAL ;
  ( 
  	INCREMENT BY 1	--증가할 시퀀스 폭
	START WITH 1	--시작할 시퀀스 값
	MINVALUE 1		--시퀀스 최소 값
	MAXVALUE 9999	--시퀀스 최대 값
  )

/*
SEQUENCE를 사용하는 이유
  시퀀스(SEQUENCE)와 뷰(VIEW)
  1. PRIMARY KEY가 될 만한 컬럼이 존재하지 않을 때
  2. 회원ID, 직원ID 처럼 규칙적으로 증가하는 값에 사용
  → NEXTVAL 키워드를 통해 이전 사원의 번호를 조회하지 않아도 다음 번호 사용 가능
*/
  • 사용예시
--시퀀스 생성
CREATE SEQUENCE 회원ID_SEQ ;
--시퀀스 값을 1씩 늘려줌(실행할때 마다)
SELECT 회원ID_SEQ.NEXTVAL 
FROM    DUAL;
--시퀀스 삭제
DROP SEQUENCE 회원ID_SEQ;

1.2. 뷰(VIEW)

참고 URL : 링크
일종의 “가상테이블” 을 의미, 테이블과 다르게 물리적으로 존재 X
BUT!!
사용자에게는 있는 것으로 간주됨
정보 보안 측면에서 유리하다는 장점
보통 자주 사용하는 쿼리를 뷰(VIEW)에 저장하여 사용

-- 괄호() 내용은 생략 가능

-- [1. 생성]
CREATE (OR REPLACE) VIEW [스키마.][뷰 NAME] AS
SELECT;

-- [2. 수정]
CREATE (OR REPLACE) VIEW [스키마.][뷰 NAME] AS
SELECT;

-- [3. 삭제]
DROP VIEW [스키마.][뷰 NAME];

-- [4. 구조 확인]
desc [스키마.][뷰 NAME];

VIEW를 생성하려면 권한 필요 (뷰 사용예시)
자주 조회되는 결과를 VIEW로 만들 수 있음.

  1. Run SQL Command Line 실행
  2. CONN SYSTEM / 12345;
  3. GRANT CREATE VIEW TO SERVICE;
  4. 완료되면 끄기
  5. (예)부서별최고연봉_VIEW 뷰 만들기
CREATE VIEW 부서별최고연봉_VIEW AS
SELECT 부서ID, MAX(연봉) AS 부서별최고연봉
FROM 직원
GROUP BY 부서ID
ORDER BY 부서ID ;
  1. 이후 부터는 뷰로 조회 가능
SELECT *  
FROM   부서별최고연봉_VIEW;
  1. VIEW 삭제 방법
DROP VIEW 부서별최고연봉_VIEW;

profile
제가 한 번 해보겠습니다.

0개의 댓글